Dim*_*kiy 19 javascript jquery javascript-events
基本上我有一个锚元素, <a href='bla..'>link</a>
点击后,我首先想要做的事情,只有在完成后我才想把用户带到它链接到的页面.就像是:
$('a').click(function(ev){
ev.preventDefault();
//do something here
ev.refireDefault();
});
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我很抱歉!我的FireFox决定缓存以前版本的JS,所以我尝试过的只是一个简单的CTRL + F5解决了这个问题.
Cod*_*ick 21
Javascript不是多线程的.它是事件驱动的,事件按照加载它们的顺序触发.因此,如果您只是完全忽略了ev.preventDefault()单击事件,则在函数退出之前不会触发默认操作.
编辑@Greg的评论:
上述情况不正确的唯一情况是异步函数.在这种情况下,您可能希望首先阻止默认操作,然后在异步回调函数中,重新触发默认操作.
preventDefault将事件标记为已处理,以便在单击函数退出时,不执行默认操作.如果不调用preventDefault,则在单击函数退出之前不会调用默认单击操作.所以删除它,它会像你建议的那样工作.
工作完成后,链接将不会发生,因此您可以执行以下操作:
$('a').click(function(ev){
//do something here
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13863 次 |
| 最近记录: |