Event.preventDefault()在所有浏览器上的Jquery中失败

Event.preventDefault()在所有浏览器上的Jquery中失败,jquery,Jquery,简单的问题。我有以下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> 这是没有问题的。将断点添加到preventDefault

简单的问题。我有以下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>
这是没有问题的。将断点添加到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;
}
for(i=0,l=elems.length;imaxLevel){
打破
}
event.currentTarget=match.elem;
event.data=match.handleObj.data;
event.handleObj=match.handleObj;
ret=match.handleObj.origHandler.apply(match.elem,参数);
if(ret==false | | event.isPropagationStopped()){
maxLevel=match.level;
如果(ret==false){
停止=错误;
}
if(event.isimmediatePropagationsToping()){
打破
}
}
}
返回站;
}
然后,当它退出时,它运行重定向调用


谢谢

对我来说很好。一定还有别的事情发生。我会从您的页面创建一个缩减来跟踪它。

注意:
bind
是附加的。试试这个:

$("#claim-job-link").unbind('click').bind('click', function(event) {
    event.preventDefault();
});

谢谢你们的帮助。不过我想出来了。在rails应用程序中,当您调用:remote=>true或:method=>:xxx时,它会向链接添加一个标记。rails应用程序处理此标记的方式使event.preventDefault调用无法工作。通过删除:method属性,调用现在可以工作了。仔细想想。再次感谢您的帮助。

您是否在子
span
元素上设置了任何处理程序?这可能是问题所在。。。也许您正在阻止事件从span传播?当我在我的应用程序的其他地方查看时,我的所有preventDefault调用似乎都在发生这种情况。是否存在可能影响呼叫的系统范围的问题@Juan@lone-Nope,没有处理跨度。可以发布链接吗?你修改过jQuery吗?事情变得越来越奇怪。我刚刚清除了除那个调用之外的所有application.js,然后将链接移动到plain,但仍然无法工作。很奇怪。我甚至去掉了不必要的jquery库。这里可能存在某种rails/gem交互吗?即使您添加了多个处理程序,从其中一个调用event.preventDefault()仍然可以工作。但是,很可能是同一节点上或节点内的另一个处理程序正在调用stopPropagation();OP需要弄清楚他的代码中还有哪些部分与这些节点交互。好吧,我们可以整天谈论什么“应该”或“不应该”起作用,但如果没有他更多的代码,这一切都只是一个猜测游戏。实际输出的HTML是什么?这是一开始就应该发布的内容它是一开始就发布的。data method=“post”导致调用失败。添加data method=“post”不会导致调用失败!我的答案有一个链接到一个例子,就像你发布的那样,它确实有效。您的问题是您的链接不在rails环境中。在rails上尝试:)
$("#claim-job-link").unbind('click').bind('click', function(event) {
    event.preventDefault();
});