我想在文本框内的文本发生变化时触发javascript事件,无论是通过用户输入文本,复制粘贴文本还是拖动文本。我遇到的问题是用户将文本从某个地方拖到文本框中。
如果在文本框之间拖动文本,则在chrome中,对于拖动文本框的文本框,会触发一次change()事件,第二次将文本拖放到目标文本框中。
在firefox或IE8中,更改事件永远不会触发。
是否有一个更适合我可以听的跨越浏览器的活动?
出于文档目的,这里是我正在使用的代码,从上面的jsfiddle复制。
HTML
<input value="drag me over there">
<input>
<div class="message"></div>
的jQuery
$('input').change(function() {
$('.message').append('changed<br/>');
});
答案 0 :(得分: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
}
});
这些会触发事件,但输入框内的内容会发生变化。