2012-08-03 102 views
0

我有这样的代码:jQuery的隐藏DIV功能工作不正确

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的控制台它的工作,但是当我将其添加在我的文件不工作,不在控制台中显示任何错误。 任何想法为什么会发生这种情况?

回答

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事件,this是一样的e.target

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

所以我建议你尝试从线103代码移动到2717

+0

不是真的,因为我已经准备好了这个功能,我发布的只是代码中的一部分 – agis 2012-08-03 15:05:42

+0

好的,我需要更多信息。你有没有尝试过使用'console.log'来查看变量的值?现成的建议是因为它可能发生,当您将脚本添加到文件时,元素不在页面中,但是它们在后面。 – NicoSantangelo 2012-08-03 15:10:40

+0

我不知道如何使用console.log这个特定的问题,如果你想看看我的网站是[here](http://ibizapartypeople.com)和包含此代码是在行71如果你查看源 – agis 2012-08-03 15:29:47

0

你不一定必须使用jQuery的功能,你可以使用基本的JS:

尝试:

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

让我知道这是否有帮助。