2014-02-14 21 views
-1

當點擊的目標位於「multiselectWrapper」div元素之外時,我需要關閉'multiselectPopUp'unorderlist元素。使用jquery隱藏包裝器內的元素

<div class="multiselectWrapper"> 
    <input type="text" class="multiselectTextBox"/> 
    <ul class="multiselectPopUp"> 
     <li>One</li> 
     <li>Two</li> 
    </ul> 
</div> 

<script type="text/javascript"> 

    $(function() { 

     $('.multiselectPopUp').hide(); 
     $(document).click(function (e) { 
      debugger; 
      if ($(e.target).is('.multiselectTextBox')) { 
       $('.multiselectPopUp').show(); 
      } 
      else if(// Plese provide me selector logic here){     
       $('.multiselectPopUp').hide(); 
      } 
     }); 
    }); 

}); 

回答

-1
<div class="multiselectWrapper"> 
     <input type="text" class="multiselectTextBox"/> 
     <ul class="multiselectPopUp"> 
      <li>One</li> 
      <li>Two</li> 
     </ul> 
    </div> 

    <script type="text/javascript"> 

    $(function() { 

    $('.multiselectPopUp').hide(); 
    $(document).click(function (e) { 
     debugger; 
     if ($(e.target).is('.multiselectTextBox')) { 
      $('.multiselectPopUp').show(); 
     } 
     else if ($(e.target).is('.multiselectPopUp') || $(e.target).is('.multiselectPopUp > li')) { 
      $('.multiselectPopUp').show(); 
     } 
     else { 
      $('.multiselectPopUp').hide(); 
     } 
    }); 
}); 
-1

jQuery的

$('ul.class').hide(); 

$('ul.class').css('display','none'); 
+0

檢查更新的代碼 –

+0

沒有它不工作。看到我的回答 – Harishankaran

0

您可以使用.closest()在這種情況下,以確定目標是否是.multiselectWrapper與否的後裔。

嘗試,

if ($(e.target).is('.multiselectTextBox')) { 
    $('.multiselectPopUp').show(); 
} 
else if($(e.target).closest('.multiselectWrapper').length === 0){     
    $('.multiselectPopUp').hide(); 
} 
1

試試這個:

$(document).ready(function() { 
     $('.multiselectPopUp').hide(); 
     $(document).click(function (e) { 
      if ($(e.target).is('.multiselectTextBox')) { 
       $('.multiselectPopUp').show(); 
      } 
      else if($(e.target).closest('.multiselectWrapper').length === 0){     
       $('.multiselectPopUp').hide(); 
      } 
     }); 
    }); 

JSFIDDLE DEMO

+0

列表不應該關閉,當我點擊裏面的「div.multiselectWrapper」。 – Harishankaran

+0

@HarisJayadev你試過我的解決方案嗎? –

+0

@HarisJayadev請檢查更新的答案和演示。 –