我正在使用rails应用程序,我正在使用jQuery和Facebox Lightbox进行弹出窗体。我想在表单上使用一些jQuery验证。当我尝试实现这一点时,我遇到了一些奇怪的结果。
如果我将javascript直接放入我在弹出窗口中加载的视图中,javsacript就可以了。
...
<script type="text/javascript">
$(document).ready(function() {
...
});
</script>
但是,如果我将其抽象一步并将javascript放入我用于弹出窗口的布局中,则会失败。
<script type="text/javascript">
$(document).ready(function() {
...
});
</script>
<div id="popup">
<%= yield %>
</div>
如果我将脚本从直接编码到视图中转换为单独的javascript文件,也会失败,例如,如果我将相同的脚本放入../public/javascripts/popup.js
然后在我看来我做了:
<%= javascript_include_tag 'popup' %>
它在这里失败了。
你认为它不会对哪个文件产生任何影响。它应该以相同的方式加载。
有关为何发生这种情况的任何想法?
答案 0 :(得分:2)
我认为在你的document.ready代码中,你正在做类似
的事情$(".supercool")..bind('click', function() {
somethingAwesome();
});
因此,它将附加到加载时存在的具有supercool类的所有类。你想要做的是使用实时
$('.supercool').live('click', function() {
// Live handler called.
});
这只是一个猜测 - 我认为这是正在发生的事情 - 需要看到更多的javascript,如果它不是那样。