2011-10-10 63 views
4

我想在文本框內的文本發生更改時(通過用戶鍵入文本,複製粘貼文本或拖動文本)觸發javascript事件。我遇到麻煩的是用戶將文本從某處拖入文本框的位置。將文本拖入文本框時觸發javascript事件跨瀏覽器

在文本框之間拖動文本的情況下,在chrome中,更改()事件會針對從中拖出的文本框觸發一次,並且第二次將文本拖放到目標文本框中。

在Firefox或IE8中,更改事件不會觸發。

是否有更適合我可以聽的作品跨瀏覽器?

Here's an example

對於文檔的目的,這裏是我使用的代碼,從上面的jsfiddle複製。

HTML

<input value="drag me over there"> 
<input> 

<div class="message"></div> 

jQuery的

$('input').change(function() { 
    $('.message').append('changed<br/>'); 
}); 

回答

2

低於最近所有的瀏覽器IE9,包括工程的第一個例子,第二個是IE8及以下。

$("some input element").bind("input", function() { 
    // do something 
}); 

$('some input element').bind("propertychange", function (e) { 
    if (e.originalEvent.propertyName == "value") { 
     // do something 
    } 
}); 

這些將觸發事件,但輸入框內的內容發生更改。