当文本被拖入文本框时,触发javascript事件跨浏览器

时间:2011-10-10 20:48:16

标签: javascript jquery events javascript-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/>');
});

1 个答案:

答案 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
    }
});

这些会触发事件,但输入框内的内容会发生变化。