开发者问题收集

event.preventDefault() 在 Firefox 中不起作用

2016-03-01
919

我想使用函数 blow 来阻止像“a href”这样的默认操作,但它在 Firefox 中无法工作。

function alertPopup(html) {
    event.preventDefault();
    // ...
}

然后我将变量“event”添加到此函数中,就像 blow 一样,但也失败了; Firefox 控制台显示错误“ReferenceError:event 未定义”。

function alertPopup(html) {

    function stepstop(event){
        console.log("tttttt");
        event.stopPropagation();
    };
    stepstop(event);
            // ...
}

<a href="#" onclick="alertPopup("hello");">XXXXX</a>

那么我怎样才能阻止此函数中的默认操作?不使用“return false”...谢谢!

2个回答

不要使用锚标记上的 onclick 属性,而是尝试在 Javascript 中添加事件监听器,这样就可以在实际的点击事件中防止出现默认情况。

使用 JQuery,它看起来像这样:

$('a').on('click', function(e){
    e.preventDefault();
    ......
});
Luke P
2016-03-01

传入事件

function alertPopup(event, html) {
    event.preventDefault();
    console.log(html);
}
<a href="#" onclick="alertPopup(event, 'hello');">XXXXX</a>

更好的方法是使用 addEventListener() 附加事件,而不是使用内联事件。

epascarello
2016-03-01