Как я могу мигать с JQuery? - PullRequest
3 голосов
/ 29 июля 2010

Я бы хотел мигнуть текстом моего меню. У меня есть этот код, но он не работает с 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 ]

5 голосов
/ 29 июля 2010

Подключаемые модули Mini-Effects здесь должны быть проще - очень маленькими и явно эффективными, если это все, что вам нужно из библиотеки эффектов пользовательского интерфейса (за исключением других важных вещей, "пульсация", " встряхнуть "и" Боб ").

Прост в использовании - просто загрузите нужный плагин мини-эффектов, а затем просто вызовите blink () для элемента, который хотите мигать.

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

Затем просто вызовите blink () на каком-нибудь большом ярком ресурсе:

$(".selector").blink();
2 голосов
/ 29 июля 2010

Вы устанавливаете obj как $ (this), поэтому вы должны каждый раз вызывать obj вместо $ (obj).

Просто замените

obj = $(this);

С просто

obj = this;

Но все же подумайте о людях с эпилепсией, плохим зрением и т. Д.

1 голос
/ 29 июля 2010

В проводнике:

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))
0 голосов
/ 29 июля 2010

Вы проверяли код с помощью Firebug или встроенных инструментов разработчика в Chrome?Я ожидаю, что вам нужно изменить

}(jQuery))

на

})(jQuery)

(переместить скобки вокруг ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...