Facebox Lightbox内的Javascript

时间:2010-11-12 18:06:20

标签: javascript jquery ruby-on-rails facebox

我正在使用rails应用程序,我正在使用jQuery和Facebox Lightbox进行弹出窗体。我想在表单上使用一些jQuery验证。当我尝试实现这一点时,我遇到了一些奇怪的结果。

如果我将javascript直接放入我在弹出窗口中加载的视图中,javsacript就可以了。

示例:app / views / item / view.html.erb

...

<script type="text/javascript">
    $(document).ready(function() {
        ...
    });
</script>

但是,如果我将其抽象一步并将javascript放入我用于弹出窗口的布局中,则会失败。

示例:app / views / layouts / popup.html.erb

<script type="text/javascript">
    $(document).ready(function() {
        ...
    });
</script>

<div id="popup">
    <%= yield %>
</div>

如果我将脚本从直接编码到视图中转换为单独的javascript文件,也会失败,例如,如果我将相同的脚本放入../public/javascripts/popup.js

然后在我看来我做了:

<%= javascript_include_tag 'popup' %>

它在这里失败了。

你认为它不会对哪个文件产生任何影响。它应该以相同的方式加载。

有关为何发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:2)

我认为在你的document.ready代码中,你正在做类似

的事情
$(".supercool")..bind('click', function() {
  somethingAwesome();
});

因此,它将附加到加载时存在的具有supercool类的所有类。你想要做的是使用实时

$('.supercool').live('click', function() {
  // Live handler called.
});

这只是一个猜测 - 我认为这是正在发生的事情 - 需要看到更多的javascript,如果它不是那样。

http://api.jquery.com/live/