Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在jquery中触发onclick事件_Javascript_Html_Jquery_Css_Web - Fatal编程技术网

Javascript 无法在jquery中触发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

我不能在jquery中单击div的类来切换它

预期行为:我想将close类添加到hamburger菜单中,使其成为交叉单击,并希望显示移动屏幕的覆盖,但目前我只想知道如何触发此onclick事件

下面是我使用的代码:

$(“#移动菜单”)。单击(函数(){
$(“.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");
     }
  });
});