简单的问题。我有以下HTML:
<a rel="nofollow" id="claim-job-link" data-method="post" class="button green claim-job" href=""><span class="button"> <span class="text"> Claim Job </span> </span></a>
以下Jquery:
$("#claim-job-link").bind('click', function(event) {
event.preventDefault();
});
被称为没有问题。在preventDefault中添加断点表明它已被调用。但是,浏览器仍然在Chrome和Firefox中重定向。有人遇到过类似的事吗?
已编辑添加
看起来事件首先被阻止,然后jquery进入这个代码块:
for ( i = 0, l = elems.length; i < l; i++ ) {
match = elems[i];
if ( maxLevel && match.level > maxLevel ) {
break;
}
event.currentTarget = match.elem;
event.data = match.handleObj.data;
event.handleObj = match.handleObj;
ret = match.handleObj.origHandler.apply( match.elem, arguments );
if ( ret === false || event.isPropagationStopped() ) {
maxLevel = match.level;
if ( ret === false ) {
stop = false;
}
if ( event.isImmediatePropagationStopped() ) {
break;
}
}
}
return stop;
}
然后当它退出时,它会运行重定向调用。
由于
答案 0 :(得分:1)
对我来说很好。 http://jsbin.com/ateje4/edit必定会有其他事情发生。我会从你的页面创建一个减少量来追踪它。
答案 1 :(得分:1)
注意:bind
是附加的。试试这个:
$("#claim-job-link").unbind('click').bind('click', function(event) {
event.preventDefault();
});
答案 2 :(得分:1)
感谢您的帮助。我想通了。在rails应用程序中,当您调用:remote =&gt; true或:method =&gt;:xxx时,它会向链接添加标记。 rails应用程序处理此标记,使event.preventDefault调用不起作用。通过删除:method属性,调用现在可以正常工作。去搞清楚。再次感谢您的帮助。