jQuery 函数绑定“输入属性更改”未按预期触发

Slo*_*ong 3 javascript jquery bind function

我有 jQuery 代码调用这样的函数:

$('#text_area').bind('input propertychange', function() {...
Run Code Online (Sandbox Code Playgroud)

绑定到该函数的元素是文本区域。当我键入并删除文本时,该函数会被调用,但是当我通过热键或拖动鼠标选择所有文本,然后按退格键时,该函数不会被调用。这是我无法调用函数的唯一实例。这是这次活动的预期吗'input propertychange'?如果是这样,我该如何改变它以按预期工作?请注意,这适用于 Chrome、IE 和 Firefox。

Aru*_*K V 5

当文本区域被清除时,您需要调用一个函数。或者您想在将文本粘贴到文本区域时调用相同的函数。

您可以使用问题中包含的相同代码。我在这个答案中包含了一个工作演示

 <textarea id='textarea1'>data</textarea>
Run Code Online (Sandbox Code Playgroud)

//......................

$("textarea").bind('input propertychange', function(){
  alert($(this).val());
});
Run Code Online (Sandbox Code Playgroud)

注意:使用jquery插件

演示版

如果您想防止同时触发,请使用以下代码

<textarea id="textarea"></textarea>
Run Code Online (Sandbox Code Playgroud)

//.......

var text = "";
$("#textarea").on("change keyup paste", function() {
    var Val = $(this).val();
    if(Val == text) {
        return; //prevent multiple simultaneous triggers
    }

    text = Val;

    alert("changed!");
});
Run Code Online (Sandbox Code Playgroud)

演示1

'Note: Checked with chrome and firefox'
Run Code Online (Sandbox Code Playgroud)