Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails 4 jquery函数只工作一次,而不是重新加载_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript Rails 4 jquery函数只工作一次,而不是重新加载

Javascript Rails 4 jquery函数只工作一次,而不是重新加载,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,在Rails 4.2.5中工作时,我的 application.js文件: $(document).ready(function() { $("#property_selection #properties").click(function() { var url = window.location.href .replace(/\/?$|(\?|&)current_prop_id=[^?&]+/g, "") + "?current

在Rails 4.2.5中工作时,我的
application.js
文件:

$(document).ready(function() {
$("#property_selection #properties").click(function() {
    var url = window.location.href
            .replace(/\/?$|(\?|&)current_prop_id=[^?&]+/g, "")
        + "?current_prop_id="
            + $("#properties option:selected").val();
    window.location.href = url;
    })
});
也就是说,当我选择一个属性id时,我想转到同一个URL,加上
”?当前\\u prop \\u id=“
,加上id

这在我第一次登录时起作用。当我走到一条像
http://localhost:3000/foo
,但事实并非如此。打动 页面使它再次工作

然后我将
$(document).ready
行更改为
$(文档)。在('page:load'),…
,(根据我读到的内容) ), 但这只是扭转了问题。现在它第一次起作用,但是 不是第二个

将此代码放到静态文件中就可以了

我现在已经在
application.js
中定义了这两个函数,这在我看来是错误的 很多级别,但我不知道如何让函数在其中工作
这两种情况都不同。有人有什么建议吗?谢谢。

我通常会这样做(咖啡脚本语法):

或javascript:

$(document).ready(function() {
  do_on_load();
  $(window).bind('page:change', do_on_load);
}

您在哪里加载是包含应该执行的指令的函数。无论如何,这是由turbolinks+jquery引起的,它真的很烦人。更改它们在应用程序中的加载顺序。js也会影响这种行为。我建议重新考虑使用turbolinks…这会给你带来一些麻烦。祝你好运!

我在以前使用jquery函数加载我的图像。这是TurboLink加载页面的原因。与页面绑定的某些节点不再存在


我使用了
gem'jquery turbolinks'
来解决我的问题。检查gem,如果它能解决你的问题,试试它。祝你好运,伙计。

谢谢turbolinks的提示。不过,我选择了从我的配置中删除它,因为gem
jquery turbolinks
似乎没有帮助。我甚至不确定它们的参考来自哪里,除非生成器自动创建了它们。再次感谢。谢谢。我确实重新考虑了TurboLink,或者更确切地说,我第一次考虑了它,并在代码中删除了对它的所有引用。我不记得在我的任何文件中放置了对它的任何引用,所以生成器一定做了。
$(document).ready(function() {
  do_on_load();
  $(window).bind('page:change', do_on_load);
}