gpt4 book ai didi

javascript - jQuery:防止绑定(bind)的js在单击时运行,然后在满足条件时运行它

转载 作者:行者123 更新时间:2023-12-03 10:54:28 25 4
gpt4 key购买 nike

抱歉,这个标题很奇怪,我想不出更好的措辞方式。

情况是:我有一个由复杂系统生成的链接(无法更改),单击时会触发 JS 函数。

相反,当单击链接时,我希望出现一个模式框,询问用户是否确定。如果他们选择 yes,那么原始的 JS 函数将运行。如果没有,则模式关闭并且什么也不会发生。

是否可以像这样解除绑定(bind)、捕获并重新绑定(bind)原始函数?

伪代码如下,希望是可能的:

$('a.link').click(function(){

// *** Capture original JS function bound to link ***

// *** var agree = Run new function (open modal box) ***

if(agree === true){

// *** Run original function ***

}else{

// *** Close modal box ***

}
});

我可能以错误的方式思考这个问题,如果有更好的方式请告诉我!

最佳答案

您的事件处理程序将按照它们附加的顺序触发。如果您可以将自己插入first position of the queue ,然后在回调参数上您可以调用 e.stopImmediatePropagation()。它将阻止其他事件的触发。设置一个变量记录响应,并再次触发链接点击。

var check = null; //store user's response

$(".preventable").on("click", function(e) {
if(check == null) {
e.stopImmediatePropagation();
alert("hijacked")

check = true; //confirm here

if(check)
$('.preventable').click();
}
}

$(".preventable").on("click", function(e) { alert("clicked2"); })

jsfiddle

关于javascript - jQuery:防止绑定(bind)的js在单击时运行,然后在满足条件时运行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28316519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com