[英]Jquery .on('click,'button' not working
我需要检查用户是否关闭了浏览器。 没有可靠的方法,但是最准确的方法似乎是使用onbeforeunload
并检查是否单击了链接或按钮。 我还将添加f5和其他一些额外的检查。
但是我对按钮有疑问。 如果单击按钮,即使存在if(window.link_was_clicked==false)
条件,也会进行ajax调用。
<button onclick="setLocation('http://dev.site.com/checkout/')" class="button" title="Checkout" type="button"><span><span>Checkout</span></span></button>
和脚本:
jQuery(document).on('click', 'button', function(event) {
window.link_was_clicked= true;
});
window.onbeforeunload = function() {
if(window.link_was_clicked==false){
//make ajax call
}
};
看来问题是因为在onclick
按钮上附加了setLocation函数。 有什么办法首先触发jQuery(document).on
。
该变量在加载前不存在。 因此,将其添加到顶部,然后重试
window.link_was_clicked=window.link_was_clicked||false;
jQuery(document).on('click', 'button', function(event) {
window.link_was_clicked= true;
});
window.onbeforeunload = function() {
if(window.link_was_clicked==false){
//make ajax call
}
};
由于您尚未提供setLocation()
的代码,因此我假设这就是问题所在。 现在,关于更改单击事件处理程序的执行顺序:
同时嵌入onclick
和与jquery绑定的处理程序通常是不好的,这会导致各种混乱。 但是,如果您无法更改html,则可以执行此人的建议: https : //stackoverflow.com/a/7507888/2685386
$(document).ready(function() {
var myClick = $('button').attr('onclick');
$('button').removeAttr('onclick');
$(document).on('click', 'button', function(e) {
window.link_was_clicked=true;
// do my other stuff here....
eval(myClick);// this will now call setLocation()
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.