javascript - 将文本拖入文本框时跨浏览器触发 javascript 事件

标签 javascript jquery events jquery-events

我想在文本框中的文本更改时触发 JavaScript 事件,无论是通过用户键入文本、复制粘贴文本还是拖动文本。我遇到的问题是用户将文本从某处拖到文本框中。

在文本框之间拖动文本的情况下,在 chrome 中,change() 事件会为从中拖动文本框触发一次,当文本被拖放到目标文本框。

在 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/>');
});

最佳答案

下面的第一个示例适用于所有最新的浏览器,包括 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/

相关文章:

jquery - Laravel 5.8 多图上传

java - 从 GWT Activity.mayStop() 响应中捕获 "Cancel"选择

TypeScript 接口(interface)中的 Javascript 条件

javascript - 无法从订阅的服务获取 .then 方法

javascript - 未能对先前事件的元素调用操作

c# - Kinect v2 如何知道帧是否排队

JavaScript 事件监听器运行两次

javascript - 适用于 Web 的 Firestore - 离线写入时,抛出而不是本地保存并在连接恢复时同步

c# - 将 xml 嵌入 json

php - 动态垂直菜单问题