jQuery:防止绑定的 js 在单击时运行,然后在满足条件时运行它
jQuery: Prevent bound js from running on click, then running it if condition is met
对不起,这个奇怪的标题,我想不出更好的措辞方式。
情况是:我有一个由复杂系统生成的链接(无法更改),单击时会触发JS函数。
相反,当单击链接时,我希望出现一个模态框,询问用户是否确定。如果他们选择是,那么原始的JS函数将运行。如果没有,则模态关闭,没有任何反应。
是否可以像这样解绑、捕获和重新绑定原始函数?
伪代码如下,希望有可能:
$('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 ***
}
});
我可能考虑的方式错误,如果有更好的,请告诉我!
事件处理程序将按附加顺序触发。如果你可以在队列的第一个位置插入自己,那么在回调参数上你可以调用 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"); })
斯菲德尔
相关文章:
- Javascript运行php文件,然后下载文件
- Gulp Git首先运行提交任务,然后运行推送任务
- 如何更改javascript的一个变量,然后运行;“加载”;而无需重新加载页面
- 运行一次函数,然后在 5 秒内禁止进一步调用
- 运行循环,然后重置并再次运行它
- 如何让 setTimeout 函数运行,然后停止使用循环
- 如何运行一个调用某个函数的函数首先完成它,然后再调用下一个函数.正在创建回调函数
- 试图修复一个倒计时计时器问题,该问题导致计时器运行,然后在使用Javascript时崩溃约10秒
- 如何计算一个函数在javascript中运行的次数?然后在页面上显示
- 如何先追加,然后在jquery中运行ajax
- 如何确保我的值已添加并存在,然后运行另一个代码jquery
- JQuery启动文件下载,然后运行一个函数
- 然后在ajax返回之前运行
- jQuery:防止绑定的 js 在单击时运行,然后在满足条件时运行它
- 如何在node中编写事件发射器.js让你创建一个函数“myFunction”,然后在运行时调用成功或失败
- 原生 JavaScript 在调整大小后获取浏览器宽度,然后运行一个函数
- 等待Javascript网页抓取功能完成,然后再运行下一页
- 等待几秒钟,然后再运行下一步量角器
- 像谷歌分析一样加载js脚本,然后运行一个函数
- 运行 PHP,等待;运行 JavaScript,等待;然后提交表格