禁用元素的调用功能

时间:2012-01-23 08:04:54

标签: javascript elements

如果你想扩展一个超过20个字符的input type=text,我有一个完美的功能。我的问题是,如何将此功能应用于禁用输入?为了更好地理解我的函数的行为,请检查我的小提琴示例: 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');
});

谢谢。

2 个答案:

答案 0 :(得分:0)

由于您无法关注已禁用的元素,因此您应该为此构建一个解决方法。或者为此使用其他功能?

编辑:可能这对您有所帮助:Event on a disabled input

答案 1 :(得分:0)

正如丹尼尔所说,focusblur事件不适用于disabled input。然后为此目的,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/