我想在文本框内的文本发生变化时触发
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/>');
});
最佳答案 下面的第一个示例适用于所有最近的浏览器,包括ie9,第二个示例适用于ie8及以下.
$("some input element").bind("input", function () {
// do something
});
$('some input element').bind("propertychange", function (e) {
if (e.originalEvent.propertyName == "value") {
// do something
}
});
这些将触发事件,但输入框内的内容会发生变化.