3

我想闪烁我的菜单文本。我有这个代码,但它不适用于 IE。

(function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            setInterval(function() {
                if($(obj).css("color") == "rgb(255, 0, 0)")
                {
                    $(obj).css('color','#000000');
                }
                else
                {
                    $(obj).css('color','rgb(255, 0, 0)');
                }
            }, options.delay);
        });
    }
}(jQuery))

$(document).ready(function(){$('.blink').blink()})

有人能帮我吗?谢谢!

4

4 回答 4

5

Mini-Effects 插件在这里应该更简单——如果这是您从 UI 效果库中需要的全部内容(除了那些其他必需品,“throb”、“shake”和“bob”),那么它非常小且明显高效。

使用简单——只需加载您需要的迷你效果插件,然后只需在要闪烁的元素上调用 blink()。

<script type="text/javascript" charset="utf-8" src="javascripts/jquery.blink.min.js"></script>

然后,只需在一些大的颜色鲜艳的资源上调用 blink() :

$(".selector").blink();
于 2010-07-29T10:43:50.173 回答
2

您将 obj 设置为 $(this),因此每次都必须调用 obj 而不是 $(obj)。

只需更换

obj = $(this);

只需

obj = this;

但还是想想癫痫、视力不好等的人。

于 2010-07-29T10:36:33.533 回答
1

在资源管理器中:

if($(obj).css("color") == "rgb(255, 0, 0)")

不正确,因为 IE 看​​到了这一点:

 $(obj).css("color") == "rgb(255,0,0)";

数字之间没有空格。

您可以通过更改来修复它:

$(obj).css('color','rgb(255, 0, 0)');

$(obj).css('color','rgb(255,0,0)');

if($(obj).css("color") == "rgb(255, 0, 0)")

if($(obj).css("color") == "rgb(255,0,0)")

所以:

(function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            setInterval(function() {
                if($(obj).css("color") == "rgb(255,0,0)")
                {
                    $(obj).css('color','#000000');
                }
                else
                {
                    $(obj).css('color','rgb(255,0,0)');
                }
            }, options.delay);
        });
    }
}(jQuery))
$(document).ready(function(){$('.blink').blink()})

编辑:

            (function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            var state = false;
            setInterval(function() {
                if(state)
                {
                    $(obj).css('color','#000000');
                    state = false;
                }
                else
                {
                    $(obj).css('color','rgb(255,0,0)');
                    state = true;
                }
            }, options.delay);
        });
    }
}(jQuery))
于 2010-07-29T10:40:54.253 回答
0

您是否使用 Firebug 或 Chrome 中的内置开发人员工具检查了代码?我希望你需要改变

}(jQuery))

进入

})(jQuery)

(移动括号...)

于 2010-07-29T10:40:03.353 回答