0

如何使用以下代码块在我的 Rails 应用程序中使用 jquery hide api .. 特别是对于关闭按钮...

 <div class="loginwrapperinner">
  <div class="widgettitle">
    <button type="button" class="close" data-dismiss="alert">×</button>
    <%= "<div class=\"flash_error\">#{h alert}</div>".html_safe unless alert.blank? %>
    <%= "<div class=\"flash_notice\">#{h notice}</div>".html_safe unless notice.blank? %>
  </div>
    .....
 </div>
4

3 回答 3

1

更清洁的版本:

HTML

<div class="loginwrapperinner">
  <div class="widgettitle">
    <button type="button" class="close" data-dismiss="alert">×</button>
    <!-- empty container will not appear (try to not using html_safe!) -->
    <div class="flash_error"><%= h(alert || '') %></div>
    <div class="flash_notice"><%= h(notice || '') %></div>
  </div>
    .....
 </div>

Javascript

$('.close').
  siblings('.flash_error, .flash_notice').hide().
  prevObject.parent().hide();
于 2013-05-06T13:45:29.770 回答
0

一个简短的解释可能会改变你对这个问题的看法:

  1. rails 正在通过视图生成 html。它从不(不应该)对 javascript 负责。

  2. 在您的 javascript 文件中,您可以编写这样的功能。

因此,假设您的视图生成了一个消息框,并且该框的关闭按钮有一个类box_close_button,您可以简单地进入您的 JS 文件并将一个侦听器附加到该类:

$('.box_close_button').doSomeJavascriptHere(function() { //whatever you want. })

所以,现在它不是在 Rails 中做什么的问题,而是,什么是正确的 jquery 选择器来做你想做的事

于 2013-05-06T15:54:42.670 回答
0

我为我的问题找到了以下解决方案。

 $(function(){
$('.close').click(function(){
$(this).parent().hide();
});
});
于 2013-05-07T15:04:02.627 回答