2012-01-23 2 views
0

У меня есть функция, которая отлично работает, если вы хотите развернуть input type=text с более чем 20 символами. Моя проблема заключается в том, как применять эту функцию для отключенных входов? Для того, чтобы лучше понять поведение моей функции проверить мой пример на скрипке: http://jsfiddle.net/DCjYA/168/Функция вызова для отключенных элементов

$('input[type!="submit"]').focus(function(){ 
    if ($(this).val().length > 20) { 
     $(this).attr('data-default', $(this).width()); 
     $(this).animate({width: 300}, 'slow'); 
     $(this).parent().addClass('cooling'); 
    } 
}).blur(function(){ 
    var w = $(this).attr('data-default'); 
    $(this).animate({ 
     width: w 
    }, 'slow'); 
    $(this).parent().removeClass('cooling'); 
}); 

Спасибо.

ответ

0

Как Даниил сказал focus и blur событие не будет работать с disabledinput. Тогда для этой цели hover, mouseenter or mouseover, mouseleave or mouseout могут быть использованы события, но я не мог найти его работу, но я нашел mousemove для expanding. вы можете использовать его, он решает вашу проблему.

$('input:disabled').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/raj_er04/DCjYA/174/

+0

не работает на IE :( – mcmwhfy

+0

попробовать с $ ('вход [ disabled] ') .. он будет работать во всех –

+0

Нет, он не работает на IE8: ((check on fiddle – mcmwhfy

0

Поскольку вы не можете сосредоточиться на отключенном элементе, вы должны создать обходной путь для этого. Или использовать для этого другую функцию?

EDIT: Возможно, это может быть полезно для вас: Event on a disabled input

+0

и как интегрировать это в моей функции: на самом деле не хотите использовать другую функцию: (( – mcmwhfy