0

我有这个代码:

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 控制台上,它可以工作,但是当我将它添加到我的文件时,它不起作用,并且在控制台中没有显示任何错误。知道为什么会这样吗?

4

2 回答 2

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

于 2012-08-03T14:34:48.497 回答
0

您不一定必须使用 jQuery 函数,您可以使用基本的 JS:

尝试:

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

让我知道这是否有帮助。

于 2012-08-03T14:38:16.807 回答