Javascript 无法在jquery中触发onclick事件
我不能在jquery中单击div的类来切换它 预期行为:我想将close类添加到hamburger菜单中,使其成为交叉单击,并希望显示移动屏幕的覆盖,但目前我只想知道如何触发此onclick事件 下面是我使用的代码:Javascript 无法在jquery中触发onclick事件,javascript,html,jquery,css,web,Javascript,Html,Jquery,Css,Web,我不能在jquery中单击div的类来切换它 预期行为:我想将close类添加到hamburger菜单中,使其成为交叉单击,并希望显示移动屏幕的覆盖,但目前我只想知道如何触发此onclick事件 下面是我使用的代码: $(“#移动菜单”)。单击(函数(){ $(“.icon”).toggleClass(“关闭”); var x=document.getElementsByClassName(“覆盖”)[0]; if($(“.icon”).hasClass(“关闭”)){ x、 style.dis
$(“#移动菜单”)。单击(函数(){
$(“.icon”).toggleClass(“关闭”);
var x=document.getElementsByClassName(“覆盖”)[0];
if($(“.icon”).hasClass(“关闭”)){
x、 style.display=“block”;
$(“正文”).addClass(“模式打开”);
}否则{
x、 style.display=“无”;
$(“正文”).removeClass(“模式打开”);
}
});
看起来您的元素没有绑定到click函数。你需要使用 准备好检查准备就绪并绑定事件 以下是工作代码段:
$(document).ready(function(){
$("#mobile-menu").click(function() {
$(".icon").toggleClass("close");
var x = document.getElementsByClassName("overlay")[0];
if ($(".icon").hasClass("close")) {
x.style.display = "block";
$("body").addClass("modal-open");
} else {
x.style.display = "none";
$("body").removeClass("modal-open");
}
});
});
我给你编了一段。请使用可访问的相关脚本、CSS和HTML进行更新您提供的示例中不存在您的
overlay
类及其相关的div
。您的问题并不清楚。“如何触发onclick?”似乎是这样,但还有更多关于overlay/hamburger的评论,可能只是为了提供背景/更多信息和“我不能通过单击进行切换”,这与“触发”无关。假设您想触发[从代码]点击,您将使用$(“#移动菜单”).cick()
或较长的$(“#移动菜单”)。触发(“单击”)代码>。如果不是这样(可能不是),请澄清您的问题和标题,以便清楚您的问题。对不起,我认为我在问题中添加了很多信息,我只需要在单击汉堡菜单时将其更改为十字,并显示隐藏的div(.overlay),我用与更改汉堡图标相关的内容更新了代码。
$(document).ready(function(){
$("#mobile-menu").click(function() {
$(".icon").toggleClass("close");
var x = document.getElementsByClassName("overlay")[0];
if ($(".icon").hasClass("close")) {
x.style.display = "block";
$("body").addClass("modal-open");
} else {
x.style.display = "none";
$("body").removeClass("modal-open");
}
});
});