Можно ли отключить событие фокуса, когда работает .animate? - PullRequest
0 голосов
/ 25 января 2012

У меня есть эта функция, которая устанавливает ширину для моих входных данных и объявляет класс родительским.

function inputWidth() {
        $('input[disabled="disabled"]').removeAttr("disabled").prop("readonly", true);
        $('input[type!="submit"]').focus(function(){
            if ($(this).val().length > 20) {
                $(this).attr('data-default', $(this).width());
                $(this).animate({
                    width: 350
                }, 'slow');
                $(this).parent().addClass('cooling');
            }
        }).blur(function(){ /* lookup the original width */
            var w = $(this).attr('data-default');
            $(this).animate({
                width: w
            }, 'fast');
            $(this).parent().removeClass('cooling');
        });
   };

Моя проблема в том, как остановить событие click, когда запускается animate, потому что, если я нажимаю многоодновременно в 2 входах на размытие входы не знают, чтобы вернуться к исходному размеру.

Я прикрепил вам экран печати, чтобы лучше понять поведение.вот: http://s17.postimage.org/j6kn0fr9b/fiddle.jpg и вот пример скрипки: http://jsfiddle.net/DCjYA/223/ благодарности.

1 Ответ

1 голос
/ 25 января 2012

Вам просто нужно добавить .stop() к вашей анимации, и поля вернутся к своему первоначальному размеру независимо от того, сколько раз вы нажимаете здесь и там - http://jsfiddle.net/DCjYA/224/

...