- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ajax 函数,当它应该只触发一次时,它会在单击时被多次调用。
$(document).on('click', '.newGameItem', function() {
console.log('start click event');
var apiUrl = $(this).attr('data-api-string');
var callType = $(this).attr('data-api-post-call');
var apiKey = $(this).attr('data-api-key');
var dataType = $(this).attr('data-api-data-type');
var returnValue = $(this).attr('data-return-value');
var currentGameWrapper = $(this).parent().parent().parent();
console.log('before api call');
getNewItem(apiUrl, callType, apiKey, dataType, returnValue, currentGameWrapper);
console.log('after api call');
});
此点击事件位于 Turbolinks 加载事件内:
$(document).on('turbolinks:load', function() { ... }
我在turbolinks加载事件的顶部放入了console.log,可以确认该文件中的JavaScript运行了3次。我注意到当我在此页面上单击指向另一个页面的链接,然后单击此页面的后退按钮时会发生这种情况,但当我从应用程序中的其他位置单击该页面时也会发生这种情况。
该文件正在通过 Assets 管道进行编译,并且我们在 body 标记上有 data-no-turbolink
(实际上它似乎从未执行任何操作。
有什么想法为什么会发生这种情况或解决方法吗?目前我无法选择将 Turbolinks 从我的应用程序中完全剔除。
谢谢
最佳答案
该点击事件必须位于 'turbolinks:load'
事件之外,这就是将其附加到 $(document)
而不是元素的要点。如果你有它,它就会在每次页面加载时创建它。您的 JavaScript 应该如下所示:
$(document).on('click', '.newGameItem', function() {
// ...
});
$(document).on('turbolinks:load', function() {
// ...
});
关于JavaScript 在 Rails 应用程序上加载了 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639350/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!