2012-02-07 19 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(); 
});