2017-04-05 58 views
1

如何檢查目標是否從元素中刪除或不在jQuery中?

$(document).ready(function() { 
 
    $(".dropdown-toggle").click(function(event) { 
 
    var target = $(event.target); 
 
    if (target.is(this)) { 
 
     $(this).find(".caret").toggleClass("customcaret"); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="dropdown-toggle"> 
 
<div class="caret"></div> 
 
</div>

此代碼工作正常,當我點擊.dropdown-toogle.caret受着(類正在改變)是內.dropdown-toogle

但是現在我想從.caret開關.customcaret類,如果我在'.dropdown-toggle'之外單擊。

+0

可以讀取正確的格式,你可以請添加計算器文檔css和html將更多的光線投射到您的問題上 –

+0

'Product ' –

+0

'.caret'是bootstrap類,我做了另一個自定義類,即'.customcaret {transform:rotate(180deg);}'..! –

回答

2

你必須要像你的腳本修改:

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="dropdown-toggle" style="float:left;"> 
    <div class="caret">Click Here</div> 
</div> 

SCRIPT

$(document).ready(function() { 
    $(".dropdown-toggle").click(function(event) { 
     event.stopPropagation(); 
     $(this).find(".caret").addClass("customcaret"); 
    }); 
    $("body").click(function() { 
     if($(".dropdown-toggle").find(".caret").hasClass("customcaret")){ 
      $(".dropdown-toggle").find(".caret").removeClass("customcaret"); 
     } 
    }); 
}); 
+0

您是否在控制檯中發現任何錯誤? –

1

您可以在身體上點擊事件,從您的元素中移除類「customcaret」。

+0

但是,當我點擊「.dropdown-toggle」按鈕之前,點擊body。「care」將被更改。 –

+0

彼得的回答很好;你只能刪除類不切換它 – sTx

+0

好吧,我會用它。謝謝! –

相關問題