2012-02-07 51 views
0

我有一些問題隱藏我的元件,其在陣列中。我把所有的元素隱藏在一個數組中,我用.each()來循環。但不知何故元素不會消失:/隱藏元件外

這裏是我的代碼:

$('html').bind("click", function(e) { 
      var hiddenElements = ['#loginContainer']; 

      $.each(hiddenElements, function(index, value) { 
       $(value).hide(); 
      }); 
     }); 
+0

我們可以看一下你的HTML?我想你可能會使用錯誤的選擇器。 – 2012-02-07 14:38:44

+1

你應該工作什麼:http://jsfiddle.net/LyqhJ/ – 2012-02-07 14:40:44

+0

你爲什麼不只是做:'$( '#loginContainer')隱藏();'? – jValdron 2012-02-07 14:41:26

回答

0

而不是使用each環,你甚至可以試試這個的。

$('html').bind("click", function(e) { 
     var hiddenElements = ['#loginContainer']; 
     $(hiddenElements.join(',')).hide(); 
    }); 
0

你可以使用一些自定義的事件type'ish插件。例如

$.fn.outside = function(ename, cb){ 
    return this.each(function(){ 
     var $this = $(this), 
      self = this; 

     $(document).bind(ename, function tempo(e){ 
      if(e.target !== self && !$.contains(self, e.target)){ 
       cb.apply(self, [e]); 
       if(!self.parentNode) $(document.body).unbind(ename, tempo); 
      } 
     }); 
    }); 
}; 

,然後用它像

$('#ElementToHide').outside('click', function(e) { 
    $(this).hide(); 
});