event.preventDefault()和event.returnValue = false都不适用于Firefox

时间:2013-07-18 00:59:51

标签: javascript firefox return-value preventdefault

我已经尝试过这些代码片段,第一个适用于IE和Chrome,第二个适用于Chrome,但它们都不适用于Firefox。我想要的是阻止页面通过链接转到其他页面

$('.album a').click(function(){
    event.returnValue = false;
    //other codes
})

$('.album a').click(function(){
    event.preventDefault();
    //other codes
})

编辑: Ian的这个片段为我工作

$('.album a').click(function(e){
    e.preventDefault();
    //other codes
});

3 个答案:

答案 0 :(得分:4)

您需要提供Event参数:

$('.album a').click(function(e){
    e.preventDefault();
    //other codes
});

您不需要处理returnValue,因为jQuery通过调用preventDefault来规范化方法以跨浏览器工作。

请注意文档中的处理程序如何将此eventObject显示为传递给它的参数:http://api.jquery.com/click/

并注意Event对象如何使用preventDefault方法:http://api.jquery.com/category/events/event-object/

答案 1 :(得分:2)

您的回调签名未注册event参数。因此,您的回调无权访问event对象,并且无法阻止它。

$('.album a').click(function(event){
    event.returnValue = false;
    //other codes
});

$('.album a').click(function(event){
    event.preventDefault();
    //other codes
});

答案 2 :(得分:0)

尝试将代码更改为以下内容:

$('.album a').click(function(e){
    e.preventDefault();
    return false;
})