jQuery点击不工作FireFox - 可能是event.preventdefault

时间:2015-10-19 14:59:09

标签: javascript jquery function javascript-events

除了firefox之外,我还有以下浏览器。这似乎是防止默认操作的问题,我该如何解决这个问题?

$(".subcontent .sidebar .mobileopen").on("click", function () {
    event.preventDefault();
    $('.subcontent .sidebar .mobileopen').toggleClass('removeborder');
    $('.subcontent .sidebar nav.mobile').slideToggle();
    $('.subcontent .sidebar nav.mobile ul li.menu-item-has-children > a').on("click", function () {
        event.preventDefault();
        $(this).nextAll('ul').eq(0).slideToggle('slow');
        $(this).parent().toggleClass("open");
    });
});

2 个答案:

答案 0 :(得分:3)

您尚未将event参数传递给事件处理程序

$(".subcontent .sidebar .mobileopen").on("click", function (event) {
                                                            ^^^^^
    event.preventDefault();

Mozilla Firefox没有全球event。检查https://stackoverflow.com/a/33167145/2025923

您还可以在事件处理程序的末尾使用return false;来防止元素的默认操作发生。这也将阻止事件冒泡。

答案 1 :(得分:0)

这个为我工作

$("body").on("click", ".subcontent .sidebar .mobileopen" function (event) {
    event.preventDefault();

});