Rails:由于某种原因,JS控制器被称为两次

出于某种原因,当我单击一个按钮时,我的控制器和生成的jquery函数被调用两次。 由于调用的js函数是切换,这是一个问题,因为它会导致代码跳入和跳出视图。

这是表格:

Unseen Notifications:  
"seen", :controller=>"notifications"}, :remote => true %>

这是控制器:

 def seen respond_to do |format| format.js end end 

这是jquery:

 $("div#notifications").toggle(); $("div#count").html(" 'notifications/count')%>"); 

我不知道为什么地球上可能会发生这种情况。 我一直非常小心,不要双击,不知道如何防止它。 任何建议都会有很大的意义。

我之前遇到过这样的问题,当时我有2个jquery库。 特别是,检查您是否只有jquery_ujs.js而不是jquery.js。 好像当你包含它们时,某些js函数被调用两次。

希望这可以帮助!

如果Benjamin的建议不起作用,你可以使用作弊和黑客并在每次点击时添加1到一些全局变量(这将发生两次),然后使用模数仅在(global_counter%2 == 0)时触发你的动作。

需要明确的是,这是一个可怕的解决方案,你应该尽可能避免使用……

我是rails的新手并遇到了同样的问题。 事实certificate我有:

<%= javascript_include_tag "application" %>

在我的视图和application.html.erb中。 我删除了其中一个,瞧,固定。

以jquery_ujs.js为我工作。

仔细查看文件application.html.erb ,看看它是否指的是jquery.js和jquery_ujs.js。 如果是这样,只需取出jquery_ujs.js,刷新浏览器并再次尝试。

另外,看一下页面源代码,看看是否同时引用了jquery_ujs和jquery。 如果是这样,请在源文件中搜索对该jquery_ujs的引用。

为我工作,谢谢你们。