2011-10-10 81 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 
    } 
}); 

这些将触发事件,但输入框内的内容发生更改。