我正在尝试阻止点击这样的锚元素的默认行为:
<a class="btn btn-default start-match" data-call="start" href="/matches/256/start.json" data-method="patch" data-model="Match" rel="nofollow">
<span class="glyphicon glyphicon-screenshot"></span> Iniziata
</a>
使用这样的javascript:
$(document).on(
'click',
"a",
function(event) {
event.preventDefault();
event.stopPropagation();
}
);
但此代码未阻止默认行为,并且遵循链接。为什么呢?
我的jquery版本是1.10,我正在使用turbolinks
答案 0 :(得分:0)
据我所知,在锚标签中首先给予HREF然后onclick事件。所以默认情况下HREF url首先调用。
如果您不想调用锚点网址,则可以使用
替换HREF标记 <a href="javascript:;">....</a>
答案 1 :(得分:0)
似乎event.preventDefault()仅适用于jQuery 1.7
具有不同结果的相同JavaScript代码: $(document).ready(function(){
$("a").on('click',
function (event) {
event.preventDefault();
//event.stopPropagation();
});
});
答案 2 :(得分:-4)
我认为这样做的目的是在文档上调用'preventDefault',而实际上,你希望阻止'a'事件。这更有可能奏效:
$('a').on('click', function(e){
e.preventDefault();
e..stopPropagation();
// rest of your stuff
});
如果按预期工作,可能甚至不需要'stopPropagation'