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

jQuery on click not working FireFox - possibly event.preventdefault

本文关键字:event preventdefault FireFox 工作 jQuery      更新时间:2023-09-26

我有以下在除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");
    });
});

您没有将event参数传递给事件处理程序

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

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

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

这个对我有用

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