可能是因为mouseup
事件通过 DOM 树向上传播,并且您将处理程序应用于文档中的每个元素。所以它会在第一个元素上触发,然后是父元素,依此类推,直到它到达html
(或body
,如果不每次都检查,我永远记不住)。
你可以使用:
$(document).ready(function () {
$("*").mouseup(function (e) {
e.stopPropagation();
renewSession();
});
});
防止多次调用。
编辑以解决来自 thiag0 的评论:
感谢您的快速响应......我正在尝试做的是每次用户点击网站时调用 renewSession() 以保持会话处于活动状态。此解决方案可防止 renewSession 在一次单击中被多次调用,但会阻止用户单击的实际意图。无论如何要解决这个问题?
你可以只定位body
元素;只要允许事件通过 DOM 树传播(只要您没有event.stopPropagation()
在单击的元素之间调用元素(或“mouseup”),那么事件就会传播到body
. 所以我d 建议使用:
$(document).ready(function () {
$("body").mouseup(function () {
renewSession();
});
});