我寫了一個jQuery插件,使元素脈衝。它在Chrome和Internet Explorer 9中運行良好。在Internet Explorer 8中,在setTimeout調用後它不工作。jQuery插件:「:懸停」不工作在IE8
我創建了一個的jsfiddle來演示該問題:http://jsfiddle.net/Guykp/ 這裏的javascript代碼:
$(document).ready(function() {
$.fn.pulseEffect = function(delay, duration) {
var $element, animateOptions;
$element = $(this);
if (!$element.is(":hover")) {
animateOptions = {
opacity: $element.css("opacity") === "1" ? .6 : 1
};
$element.animate(animateOptions, duration);
}
return setTimeout((function() {
return $element.pulseEffect(delay, duration);
}), delay + duration);
};
$("#pulse-element").pulseEffect(0, 1000);
});
我怎樣才能使它在Internet Explorer 8的工作?
這是從Internet Explorer 8的錯誤消息:語法錯誤,不能識別的表達式:不支持的僞:懸停
這是解決方案: How do I check if the mouse is over an element in jQuery?
您不能從'setTimeout'內的函數返回值。 –
我知道,但代碼是使用CoffeeScript編寫的。 CoffeeScript返回每個函數中的最後一條語句。但是,謝謝! :-) – Martin
你的代碼有很多問題。首先,'setTimeout'只返回TimeoutHandle。其次,每個人都知道':hover'在網頁瀏覽器中播放不好。而不是'return setTimeout(...);'把它寫成'setTimeout(...); return $ this;' – Christian