我想在jQuery脚本中延迟默认事件或事件。上下文是我想在用户执行某些操作(主要点击)几秒钟之前向用户显示一条消息,然后触发默认操作。在jQuery中挂起默认事件
伪代码: - 用户点击链接/按钮/元素 - 用户得到一个弹出信息,提示“您正在离开现场” - 消息仍然在屏幕上X毫秒 - 默认动作(可以比HREF其他链接太)触发
到目前为止,我的尝试是这样的:
$(document).ready(function() {
var orgE = $("a").click();
$("a").click(function(event) {
var orgEvent = event;
event.preventDefault();
// Do stuff
doStuff(this);
setTimeout(function() {
// Hide message
hideMessage();
$(this).trigger(orgEvent);
}, 1000);
});
});
当然,正如所料,这并不工作,但可能会出现什么,我试图做的。
我无法使用插件,因为这是一个没有在线访问的托管环境。
有什么建议吗?
这不会再次触发相同的点击处理程序,包括'event.preventDefault'吗? – DLH 2009-08-06 12:25:47
它不会工作,因为这个上下文将是窗口,而不是锚点 – redsquare 2009-08-06 12:27:18
需要参考锚点并在setTimeout中使用它。但是,它会导致无限循环。您需要解除该点击事件才能运行。 – redsquare 2009-08-06 12:28:13