jquery隐藏div功能不正常

时间:2012-08-03 14:30:52

标签: jquery jquery-selectors triggers

我有这段代码:

jQuery('.hoverbgpfthnailiface').click(function(e){
    var target = e.target;

    while (target.nodeType != 1) target = target.parentNode;
    if(target.tagName != 'TEXTAREA'){
        jQuery('.header-search-form').css({ 'display' : 'none' });
    }
});

奇怪的是,如果我将它放在Chrome控制台上,它可以正常工作,但是当我在我的文件上添加它时,它不起作用,并且在控制台中没有显示任何错误。 知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

您是否尝试过将代码放入就绪函数?

jQuery(document).ready(function() { 

    jQuery('.hoverbgpfthnailiface').click(function(e){
         var target = e.target;

         while (target.nodeType != 1) target = target.parentNode;
         if(target.tagName != 'TEXTAREA'){
              jQuery('.header-search-form').css({ 'display' : 'none' });
         } 
    });

});

告诉我这是否适合你:)

修改 只有一件事,如果您感兴趣,在调用绑定函数的jQuery事件中,thise.target

相同

<强> EDIT2 您在具有hoverbgpfthnailiface类的元素存在之前执行代码。 您正在第2716行创建它们,因为$(document).ready低于您在稍后执行的问题代码中使用的那个。

所以我建议您尝试将代码从第103行移到2717

答案 1 :(得分:0)

你不一定要使用jQuery函数,你可以使用基本的JS:

尝试:

document.getElementById('your element name').style.display = 'none';

如果有帮助,请告诉我。