我试图在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);
});
});
Run Code Online (Sandbox Code Playgroud)
当然,这不会按预期工作,但可能会显示我正在尝试做的事情.
我无法使用插件,因为这是一个没有在线访问权限的托管环境.
有任何想法吗?
假设我有一个链接:
<a href='http://example.com/file.zip' id='dl'>Download</a>
Run Code Online (Sandbox Code Playgroud)
当有人点击它时,我想做点什么,比如:
$("#dl").live("click", function(e){
e.preventDefault();
$("#dlbox").fadeOut(500);
});
Run Code Online (Sandbox Code Playgroud)
在我e.preventDefault之后有没有办法,继续doDefault?就像是
$("#dl").live("click", function(e){
e.preventDefault();
$("#dlbox").fadeOut(500);
e.doDefault();
});
Run Code Online (Sandbox Code Playgroud)
所以它会正常运行事件?