有没有办法使用jQuery临时覆盖元素上的所有点击绑定?

Lok*_*har 7 javascript jquery

event.preventDefault()将覆盖元素的默认事件行为.我如何暂时覆盖所有点击绑定而不仅仅是默认绑定?或者有没有办法保存所有点击绑定,以便我可以取消绑定并稍后使用它们?

那么这不是一个正确的答案,而是一个解决方法.我们可以在堆栈顶部推送所需的处理程序,然后使用return false来停止其他绑定.https://github.com/private-face/jquery.bind-first

Mic*_*ael 2

您可以使用jQuery.clone(true)它返回元素的数据。设置为 true 的参数意味着也复制所有事件。

因此,如果将元素克隆到变量中,只需将目标元素替换为旧的克隆(具有旧事件)即可恢复旧的单击事件

事情如下:

步骤 1:使用克隆目标元素jQuery.clone(true)到变量中

步骤 2:使用以下命令从目标元素中删除所有点击事件jQuery.off('click')

第 3 步:将事件绑定到目标元素jQuery.on('click' function etc...)

第 4 步:完成后,用其克隆(具有旧事件)替换目标元素

这里有一个 JSFiddle 供您观赏

(对于 JSFiddle 的简单性,我很抱歉,我很快就模拟了它,但我没有使用它的示例情况。)

编辑:我忘了解释jQuery.clone(true)