2011-09-30 40 views
0

我沒有使用「.is」工作。它在IE9,Firefox和其他現代瀏覽器的工作很好,但不是IE8或IE7如何讓「.is」在舊版Internet Explorer中工作

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> 
</head> 

<body> 

<script type="text/javascript"> 
     $('body').click(function() {     
       if (!$('.myDiv').is(":hover")) { 
        alert("outside of blue div"); 
       } 
     }); 
</script> 

<div class="myDiv" style="width:150px; height:150px; background:blue">&nbsp;</div> 

</body> 

</html> 

或者看看這裏http://jsfiddle.net/uh8RB/

我如何得到它在IE8和更早的版本?

回答

2

嘗試使用$(document).click而不是$('body').click。有時<body>標籤不佔用全屏幕高度/寬度,因此您可能會在<body>標籤之外點擊。

此外,而不是.is(":hover"),嘗試 !$(e.target).is('.myDiv') $(e.target).closest('.myDiv').length === 0.closest使用,如果我們點擊股利或股利的孩子檢測)。我不認爲IE7或IE8支持:hover CSS僞屬性。

$(document).click(function(e) {     
    if($(e.target).closest('.myDiv').length === 0) { 
     alert("outside of blue div"); 
    } 
}); 

演示:http://jsfiddle.net/uh8RB/5/
更多的測試:http://jsfiddle.net/uh8RB/8/
更新演示:http://jsfiddle.net/uh8RB/14/

+0

謝謝,但問題是,報警觸發,如果我的東西克利克的div內即可。下面是一個例子(嘗試點擊文本):http://jsfiddle.net/uh8RB/12/ – WIRN

+0

@ user263091:更改'if(!$(e.target).is('。myDiv')){'to 'if($(e.target).closest('。myDiv')。length === 0){'http://jsfiddle.net/uh8RB/14/ –

相關問題