javascript – 如何通过JQuery触发JS native,甚至addEventListener(“change”,function)

这不是How to trigger jQuery change event in code的重复,因为它处理jQuery与jQuery事件监听器的交互,而这个问题讨论了jQuery与本机事件监听器的交互.

我使用addEventListener绑定输入的change事件,但是$(‘#input’).val(‘bbbb’).change();无法触发警报,如何通过JQuery触发addEventListener(“更改”,函数)函数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>code</title>
</head>

<body>
    <script src="http://o6flfbzth.bkt.clouddn.com/jquery-1.12.0.min.js"></script>

    <input id="input" type="text" value="input" />
    <script type="text/javascript">
        document.getElementById("input").addEventListener("change", function() {
        alert(this.value);
    });
    </script>

    <input type="button" value="change input" onclick="  $('#input').val('bbbb').change();" />
</body>

</html>

解决方法:

您不能使用jQuery的.trigger(‘change’)触发本机事件.您将需要create a native eventdispatch it

var evt = document.createEvent('HTMLEvents');
evt.initEvent('change', true, true);
//            ^         ^     ^
//            |         |     cancelable
//            |         bubbles
//            type

然后解雇它:

var el = document.getElementById("input");
el.dispatchEvent(evt);
上一篇:javascript – “DomContentLoaded”在我的浏览器中不起作用?


下一篇:Struts+Servlet+JDBC网上手机销售系统