在我的项目中,我们在部分中使用内联javascript,它使用了一些实例变量。当我们在成功的ajax调用之后重新渲染那部分脚本没有运行时。
你能帮助我解决这个问题吗?
例如
_partial.html.erb
<div class="someclass"></div>
<script>
$(document).ready(function(){
$(".someclass").hide();
});
</script>
在从js.erb文件替换此部分时,脚本标记未运行。
答案 0 :(得分:4)
您的页面已加载。 ready
事件很久以前就已经过去了,现在没有人在听。
因此,如果您在Ajax加载的脚本中有$(document).ready
,则代码将永远不会被执行。
解决方案:
删除“ready”事件并直接触发代码:
<div class="someclass"></div>
<script>
$(".someclass").hide();
</script>
答案 1 :(得分:2)
在我看来,在ajax成功事件上手动更新DOM后没有触发就绪事件,因此没有执行回调函数。
答案 2 :(得分:1)
最后,我发现我认为非常适合我的要求的答案是将javascript放入js.erb
部分并在html.erb
和其他js.erb files
中相应地进行渲染。< / p>