【发布时间】:2017-05-10 06:48:41
【问题描述】:
我正在通过 ajax 调用附加内容,其中我为单击事件添加了 jquery on() 函数。每次我更新内容时,也会再次设置事件,因此最后会执行多次。如何避免这种行为?
如何测试文档是否已经设置了点击事件?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" class="open-alert">Click</a>
<script>
// first ajax load
$(document).on('click', '.open-alert', function () {
alert('hello world!');
});
// second ajax load
$(document).on('click', '.open-alert', function () {
alert('hello world!');
});
</script>
我已经尝试了jQuery.isFunction(),但我不明白如何在这种情况下应用它。
【问题讨论】:
-
不需要第二个。第一个将毫无问题地工作多个 ajax 加载。所以删除第二个并通过更新内容进行检查
-
使用 one() 而不是 on()
-
.one只会调用一次处理程序,因此无法使用。 -
您好,请检查这两个链接以获取答案。 stackoverflow.com/questions/1515069/… ....................stackoverflow.com/questions/6361465/…
标签: javascript jquery ajax jquery-on