0

私は現在 Web アプリを構築していますが、奇妙な問題があります。次の HTML があります。

この形式に似たコードがあり、

<article class="item">  
    <header class="active">  
    </header>   
    <div class="item_content">  
       <div class="item-tabs">  
            <ul>  
                <li><a href="#" class="tab-link">Description</a><li>   
                <li><a href="#" class="tab-link">Tasks</a></li> <!-- THERE IS A CLICK EVENT ON THIS -->
            </ul>
            <div class="tab-content item-description">Description</div>  
            <div class="tab-content item-tasks">Tasks</div>  
       </div>  
      <article class="item">  
         <header class="active">  
         </header>   
        <div class="item_content">  
            <div class="item-tabs">  
                <ul>  
                    <li><a href="#" class="tab-link">Description</a><li>   
                    <li><a href="#" class="tab-link">Tasks</a></li> <!-- THERE IS A CLICK EVENT ON THIS -->
                </ul>
                <div class="tab-content item-description">Description</div>  
                <div class="tab-content item-tasks">Tasks</div>  
            </div>  
        </div>
      </article>  
</article>

1 つ目class="tab-link"は以下の JavaScript を 1 回トリガーしますが、2 つ目の `class="tab-link" は以下の JavaScript を 2 回トリガーします。これには何か理由がありますか?

itemTab: function(e) {
    var clicked = $(e.currentTarget),
        clickedTab = clicked.data("tab");

    if(clicked.closest(".item-tabs").find("." + clickedTab).css("display") == "block")
    {           
        clicked.closest(".item-tabs").find(".tab-content.active").slideUp(500, function(){
            clicked.closest(".item-tabs").find(".tab-content.active").removeClass("active");    
        });

        clicked.closest(".item-tabs").find(".close").css("visibility", "hidden");

        clicked.closest(".item-tabs").find("li.active").removeClass("active");
    }
    else
    {
        clicked.closest(".item-tabs").find(".tab-content.active").removeClass("active");
        clicked.parent().addClass("active");
        clicked.closest(".item-tabs").find("." + clickedTab).addClass("active");
        clicked.closest(".item-tabs").find(".close").css("visibility", "visible");
    }



    e.preventDefault();

    //stop();
},
4

0 に答える 0