我有一个$(“#elem”).click(function {// some behavior});,$(“.elem”).click(function {// some behavior});(有多个元素)我的其他函数getJson正在执行我想从#elem中删除click事件,并从getJson函数再次添加它,但是整个时间都保留了mouseenter和mouseleave事件?
或者也许创建叠加以防止在模态窗口中点击?这是更好的主意吗?
编辑:
我已经看到了一些非常好的答案,但有一个细节我没有故意省略.有多个元素,我调用className上的click函数而不是我在原始问题中所说的elementId上
解决方法:
而不是使用unbind(),这意味着您将不得不在以后重新绑定相同的事件处理程序,您可以使用jQuery的data()工具与ajaxStart和ajaxStop事件使您的元素在所有AJAX请求期间忽略单击事件:
$(".elem").click(function() {
if (!$(this).data("ajaxRequestPending")) {
// some behavIoUr
}
}).ajaxStart(function() {
$(this).data("ajaxRequestPending", true);
}).ajaxStop(function() {
$(this).removeData("ajaxRequestPending");
});
编辑:这个答案也是id-to-class-proof(参见提问者的编辑),因为匹配选择器的所有内容都将以正确的方式处理AJAX事件.这是jQuery的主要卖点,它表明.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。