除了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");
});
});
答案 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();
});