Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 addClass不';t工作(jQuery)_Javascript_Jquery - Fatal编程技术网

Javascript addClass不';t工作(jQuery)

Javascript addClass不';t工作(jQuery),javascript,jquery,Javascript,Jquery,我是jQuery新手,需要一些帮助。我对addClass有点问题 以下是HTML: <div class="first"> Container 1 <div class="second hide"> Some text 1 <div class="close">close</div> </div> </div> <div class="first">

我是jQuery新手,需要一些帮助。我对addClass有点问题

以下是HTML:

<div class="first">
    Container 1
    <div class="second hide">
        Some text 1
        <div class="close">close</div>
    </div>
</div>
<div class="first">
    Container 2
    <div class="second hide">
        Some text 2
        <div class="close">close 2</div>
    </div>
</div>
我需要什么

  • 单击容器1.1->显示容器1.2
  • 单击容器2.1->显示容器2.2,隐藏容器1.2
  • 单击容器1.1->显示容器1.2,隐藏容器2.2
  • 我上面列出的所有作品

    现在我需要在单击“关闭”时隐藏所有容器x.2。我认为有冲突,但我不知道在哪里


    以下是

    您需要停止
    关闭
    按钮上单击事件的传播,否则您将单击关闭,然后立即重新打开div。请尝试以下操作:

    $("div.first").click(function() {
        $("div.second").addClass('hide');
        $(this).find("div.second").removeClass('hide');
    });
    
    $("div.close").click(function(e) {   
        e.stopPropagation();
        $(this).closest('.second').addClass('hide');
    });
    

    您需要停止
    关闭
    按钮上单击事件的传播,否则您将单击关闭,然后立即重新打开div。请尝试以下操作:

    $("div.first").click(function() {
        $("div.second").addClass('hide');
        $(this).find("div.second").removeClass('hide');
    });
    
    $("div.close").click(function(e) {   
        e.stopPropagation();
        $(this).closest('.second').addClass('hide');
    });
    

    当您单击
    .close
    div时,这将导致调用2个click函数,因为它位于
    div.first

  • 首先执行
    $(“div.close”)。单击(fu…
    ,这将导致隐藏
    div.First
  • 它立即执行
    $(“div.first”)。单击(fu…
    ,将显示
    div.first
  • 您可以通过
    e.stopPropagation();
    来防止这种行为:


    当您单击
    .close
    div时,这将导致调用2个click函数,因为它位于
    div.first

  • 首先执行
    $(“div.close”)。单击(fu…
    ,这将导致隐藏
    div.First
  • 它立即执行
    $(“div.first”)。单击(fu…
    ,将显示
    div.first
  • 您可以通过
    e.stopPropagation();
    来防止这种行为:


    对于显示/隐藏,请使用jquery方法代替$(选择器)。对于显示/隐藏,请使用jquery方法代替$(选择器)。对于显示/隐藏,请使用jquery方法代替$(选择器)。显示()&&&$(选择器)。隐藏()代替…@user1817820没问题,很乐意帮助。@user1817820没问题,很乐意帮助。
     $("div.first").click(function() {
        $(".second").hide();
        $(this).find(".second").show();
    });
    
    $("div.close").click(function(e) {    
        e.stopPropagation();
        $(this).parent().hide();
    });