1
我正在建立一个选择框的div和跨度。一切正常,但现在我试图添加一个:not()选择器来检测用户单击#signup-currency-selectbox及其子项以外的任何内容时下拉框是否可见。如果它是可见的,则需要在该点隐藏。以下是我目前有:不能得到:not()选择器正常工作
HTML:
<div id="signup-currency-selectbox" class='selectBox'>
<span id="signup_currency" class='selected'></span>
<span class='selectArrow'></span>
<div class="selectOptions" >
<span class="selectOption signup-currency" value="1" >$USD</span>
<span class="selectOption signup-currency" value="4" >£GBP</span>
<span class="selectOption signup-currency" value="6" >€EUR</span>
<span class="selectOption signup-currency" value="2" >$CAD</span>
<span class="selectOption signup-currency" value="3" >$AUD</span>
</div>
</div>
的jQuery:
$(":not(.selectBox)").click(function(){
$('div.selectOptions').css('display','none');
});
现在我有多个选择框的与类.selectBox,所以这将是最好使用。每次每用户点击除.selectBox之外的其他东西的时间?出于某种原因,即使.selectBox及其任何子项被点击,该功能也会执行。有没有人在这里看到任何错误?另外,我删除了if语句(不确定是否需要它开始)。
+1,但如果你点击另一个'.selectBox',它将不起作用。但是,这是解决问题的方法..我会让打开一个'.selectBox'的代码关闭所有其他的.. –
完美工作,比我的想法更有效率,非常感谢! –
好点@ GabyakaG.Petrioli,谢谢。 –