2011-05-20 58 views
4

好吧,我有一個奇怪的問題,IE8和jQuery。請參見下面的代碼:jquery IE8 - 將live('blur',函數)和live('change',function)一起使用

<!DOCTYPE html> 
<html dir="ltr"> 
<head> 
</head> 
<body> 
<input> 
<script type="text/javascript" language="javascript" src="jquery.tools.min.js"></script> 
<script type="text/javascript" language="javascript"> 
$(document).ready(function() { 
     $('input').live('blur',function(){alert('blur');}); 
     $('input').live('change',function(){alert('change');}); 
}); 
</script> 
</html> 

隨着代碼是,我不能讓上改變事件處理程序編輯輸入後場火災。但是,如果我註釋掉模糊事件處理程序,則更改將觸發。

爲什麼IE8會這樣做?我應該怎樣做才能在所有瀏覽器上同時進行模糊處理和更改工作?

+0

這是一個討厭的黑客攻擊,但是你試圖通過延遲0秒觸發它們嗎? – Alan 2011-05-20 22:44:20

+0

請.... nooooooooooooo ....我真的有嗎?有一些更好的東西... – John 2011-05-20 22:48:31

+0

我不知道,如果你真的必須,但延遲黑客已經幫助我在IE8大量:) – Alan 2011-05-20 22:54:20

回答

4

jQuery tools包括jQuery的舊版本v1.4.2。這似乎有一個IE8中的錯誤,打破了你的預期功能。升級到v1.6.1,那麼這兩個事件在IE8中觸發。我測試了jQuery的舊版本,並且在1.4.3版本中修復了任何已損壞的版本,因此如果無論出於何種原因都無法進行主要版本升級,那麼希望稍有版本升級就可以。