2012-05-10 9 views
1

上では動作しません。私はここにStackOverflowの上a questionから次のコードを取った:jQueryのスクリプトは、Firefox

$('body').click(function(event) { 
    if (!$(event.target).closest('#myDiv').length) { 
     $('#myDiv').hide(); 
    }; 
}); 

を唯一の問題は、(Safariの作品の)のFirefoxで動作しないということです。何故ですか? Firefoxとの互換性をどのように変更する必要がありますか?

+0

どの部分がうまくいかないのですか?イベントは発砲しないのですか?あるいは、セレクタは何も見つけられませんか? – inkedmn

答えて

1

これはdiv要素の外側をクリックWhich HTML element is the target of the event?

$(function() { 
    $('body').click(function(event) { 

     var targ; 
     if (event.target) targ = event.target; 
     else if (event.srcElement) targ = event.srcElement; 
     if (targ.nodeType == 3) // defeat Safari bug 
      targ = targ.parentNode; 

     if (!$(targ).closest('#myDiv').length) { 
      $('#myDiv').hide(); 
     }; 
    }); 

}); 

DEMO からコピーされた古いトリックはdiv要素!$(targ).closest('#myDiv').length

+0

デモで動作しますが、私のウェブサイトでは動作しません。私はjQueryのUI 1.8.16でjQuery 1.7.2を使用しています。そのコードと違うのは、 '$("#myDiv ")。draggable();'をセットする前のことだけです。それはなぜ機能しないのですか? – Shoe

0

はこれを試してみて、それが

$('body').click(function(event) { 
    target = (window.event) ? window.event.srcElement /* for IE */ : event.target; 
    if (!($(target).closest('#myDiv').length>0)) { 
     $('#myDiv').hide(); 
    }; 
}); 
を働いていなかったなら、私に知らせてhiedますです
+0

動作しません – Shoe

関連する問題