在RubyonRails 3.1中,内联Javascript在重新提交部分时无法正常工作
在我的项目中,我们在一个部分中使用了内联javascript,该部分使用了一些实例变量。当我们在成功的ajax调用后重新提交该部分时,脚本没有运行 你能帮我解决那个问题吗 例如 _partial.html.erb在RubyonRails 3.1中,内联Javascript在重新提交部分时无法正常工作,javascript,jquery,ruby-on-rails,ruby-on-rails-3.1,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3.1,在我的项目中,我们在一个部分中使用了内联javascript,该部分使用了一些实例变量。当我们在成功的ajax调用后重新提交该部分时,脚本没有运行 你能帮我解决那个问题吗 例如 _partial.html.erb <div class="someclass"></div> <script> $(document).ready(function(){ $(".someclass").hide(); }); </scrip
<div class="someclass"></div>
<script>
$(document).ready(function(){
$(".someclass").hide();
});
</script>
$(文档).ready(函数(){
$(“.someclass”).hide();
});
从js.erb文件中替换此部分时,scrip标记未运行。在ajax成功事件上手动更新DOM后,似乎未触发ready事件,因此未执行回调函数。您的页面已加载。
ready
事件很久以前就通过了,现在没有人在听
因此,如果在Ajax加载的脚本中有$(document).ready
,代码将永远不会执行
解决方案:
删除“就绪”事件并直接触发代码:
<div class="someclass"></div>
<script>
$(".someclass").hide();
</script>
$(“.someclass”).hide();
最后,我找到了一个我认为非常适合我需求的答案,那就是将javascript放入js.erb
部分,并相应地在html.erb
和其他js.erb文件中进行渲染,以获得响应,但它仍然不起作用。我们在脚本中使用的另一个插件是draggable,$('.someclass').draggable()代码>它第一次运行,但不是在重新提交分部后运行。我使用的是实例变量,所以我无法将此代码移动到公共js中file@abhas,如果使用Rails生成代码,请检查html是否正确传递(不是转义的html和js)。