我想在文本框中的文本更改时触发 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
}
});
无论输入框中的内容如何变化,这些都会触发事件。
关于javascript - 将文本拖入文本框时跨浏览器触发 javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718497/