Как откатить оригинальную ширину для отключенного ввода после перемещения курсора? - PullRequest
2 голосов
/ 24 января 2012

Как мне откатиться до исходной ширины этого отключенного ввода после наведения курсора, я уже пробовал с помощью .blur, но не работает.

   $('input[readonly]').mousemove(function(){
       if ($(this).val().length > 20) {
                $(this).attr('data-default', $(this).width());
                $(this).animate({width: 300}, 'slow');
                $(this).parent().addClass('cooling');
              }
    });

Пожалуйста, см. Пример ниже: - http://jsfiddle.net/DCjYA/188/

Ответы [ 2 ]

0 голосов
/ 24 января 2012

Не уверен, что вам это нужно, но вы можете попробовать фокус:

$('input').focus(function(){
if ($(this).val().length > 20) {
$(this).attr('data-default', $(this).width());
$(this).animate({width: 300}, 'slow');
$(this).parent().addClass('cooling');
}
}).blur(function(){ /* lookup the original width */
var w = $(this).attr('data-default');
$(this).animate({
width: w
}, 'slow');
$(this).parent().removeClass('cooling');
});

скрипка: http://jsfiddle.net/DCjYA/192/

0 голосов
/ 24 января 2012

Возможно, вы захотите использовать mouseenter и mouseleave вместо.

var w;
$('input[readonly]').mouseenter(function(){
       if ($(this).val().length > 20) {
               w =   $(this).css('width');
                $(this).attr('data-default', $(this).width());
                $(this).animate({width: 300}, 'slow');
                $(this).parent().addClass('cooling');
              }
    });
$('input[readonly]').mouseleave(function(){
       if ($(this).val().length > 20) {
                $(this).attr('data-default', $(this).width());
                $(this).animate({width: w}, 'slow');
                $(this).parent().addClass('cooling');
              }
    });

Возможно, вы захотите удалить класс охлаждения в mouseleave?

Рабочий образец: http://jsfiddle.net/DCjYA/189/

...