Javascript 返回false不处理自定义事件
我是Jquery自定义事件的新手,刚刚阅读了文档,我决定让我自己的自定义事件看看下面: HTML:Javascript 返回false不处理自定义事件,javascript,jquery,Javascript,Jquery,我是Jquery自定义事件的新手,刚刚阅读了文档,我决定让我自己的自定义事件看看下面: HTML: <a href="http://stackoverflow.com/">Hello</a> 编辑::总结一下我在上述代码中遇到的困难,returnfalse不起作用!用户仍然可以导航到a中的链接 现在这里的问题是返回false或preventDefault在这里起作用,为什么 我做了一点实验,当我把逻辑转移到 $('a').click(function(){ $(
<a href="http://stackoverflow.com/">Hello</a>
编辑::总结一下我在上述代码中遇到的困难,returnfalse不起作用!用户仍然可以导航到a
中的链接
现在这里的问题是返回false或preventDefault在这里起作用,为什么
我做了一点实验,当我把逻辑转移到
$('a').click(function(){
$(this).trigger('kabhoom');
return false;
})
它可以工作,但在我的自定义事件侦听器中,我的代码无法工作。谁能告诉我为什么?我对Jquery的工作方式更感兴趣,这就是为什么我要问这个问题 Return使用该返回值退出函数。您的
preventDefault
永远无法访问
console.log(e.target); // Log stuff
return false; // Exit function
e.preventDefault(); // unreachable
同样,在第二个代码块中,您从未定义过e。因此,即使它将达到e.preventDefault()代码>行它将失败,出现未捕获引用错误:未定义e
编辑
您需要检查传播是否已在中停止
var content=$('frut');
$(函数(){
//kabhoom=$.Event('click');
$('a')。关于('kabhoom',函数(e){
//我们可以走了吗?还是已经停了?
如果(!e.isPropagationStopped()){
content.append(“Target=“+e.Target+”
取消事件
”);
e、 预防默认值();
e、 停止传播();
e、 取消气泡=真;
返回false;
}
})
});
$('a')。单击(函数(e){
content.append('normalclick event
');
$(this.trigger('kabhoom');
e、 预防默认值();
返回false;
})
//包装就绪,否则事件侦听器的注册顺序会混乱。
$(文档).ready(函数(){
$('a')。关于('kabhoom',函数(e){
//我们可以走了吗?还是已经停了?
如果(!e.isPropagationStopped()){
content.append('不应出现
');
}
});
});代码>
检查我的Jquery的第一个片段,return false
不会执行,可能也不会被访问,我的问题是为什么?更简单的是,当用户点击链接时,他仍然可以进入链接,你执行代码了吗?天哪!!!你完全误解了我的问题,LOOL,只要执行我的第一个Jquery,你就会发现既不返回false也不返回default fires!这个答案太错了!您还没有费心理解我的问题,更不用说回答了,请删除此答案或重新阅读我的问题!我感谢你试图帮助我,但首先请确保你知道我在说什么!您将学习编码,而不是在不了解程序流程的情况下复制粘贴几行。我更新了我的答案。下次礼貌一点,这真的很有帮助。查看以下主题:
console.log(e.target); // Log stuff
return false; // Exit function
e.preventDefault(); // unreachable