单击外部隐藏元素

时间:2012-02-07 14:36:21

标签: jquery

我在隐藏数组中的元素时遇到了一些问题。我把所有元素隐藏在一个数组中,我用.each()循环。但不知何故,元素不会消失:/

这是我的代码:

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

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

2 个答案:

答案 0 :(得分:0)

您可以尝试使用each循环,而不是使用 $('html').bind("click", function(e) { var hiddenElements = ['#loginContainer']; $(hiddenElements.join(',')).hide(); }); 循环。

{{1}}

答案 1 :(得分:0)

您可以使用一些自定义事件类型的插件。例如

$.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();
});