2017-04-05 30 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

好吧,我会用它。谢谢! –

相关问题