2012-01-23 54 views
1

.mousemove有什麼問題,因爲不會注意到IE8。必須展開值> 20個字符的禁用輸入。只有在IE8上無法正常工作。 另一件事,爲什麼不在光標位於其他元素上時拖回。.mousemove on IE8

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

檢查小提琴: http://jsfiddle.net/DCjYA/183/

謝謝。

回答

2

在這種情況下,您應該使用readonly屬性,因爲這樣可以進一步與輸入框交互。

你的CSS

 
    input{ 
     margin:10px; 
    } 
    input.readonly { 
     color: grey; 
     cursor:default 
    } 

和表單

<form action="form_action.asp" method="get"> 
     First name: <input type="text" name="fname" value="Foghorn Leghorn Foghorn Leghorn" readonly="true" class="readonly" /><br /> 
     Last name: <input type="text" name="lname" value="" readonly="true" class="readonly" /><br /> 
     Last name: <input type="text" name="lname" value="Foghorn Leghorn" readonly="true" class="readonly" /><br /> 
    <input type="submit" value="Submit form" style=""/> 
</form> 

和你的jQuery

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

是它的工作原理,並有可能對原來的寬度跑回來時,我的光標離開那個輸入?謝謝。 – mcmwhfy