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

コードをready関数に入れてみましたか?

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' });
         } 
    });

});

それがあなたのために働いたかどうか教えてください:)

編集this興味がある場合は、バインドされた関数が呼び出され たときのjQueryイベントで1つだけ、次のようになります。e.target

EDIT2hoverbgpfthnailiface のクラスを持つ要素が存在する前にコードを実行しています。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 に答える