我在使用纯Javascript与jQuery混合使用时遇到了这个问题(我使用的是两个不同的库)。因此,对于文本输入字段,纯JavaScript脚本依赖于使用addEventListener方法添加的更改事件绑定。另一个jQuery插件(datetimepicker)用于更改该字段,并在更新值后触发jQuery.change()方法。jQuery.change()与addEventListener不兼容?
问题是,侦听器没有被jQuery事件触发。 下面是一些简单的代码来说明问题。
<!DOCTYPE html>
<html>
<body>
<input id="abc">abc abc.</input>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
document.getElementById('abc').addEventListener("change", function(){
alert('change event triggered');
});
$('#abc').change();
</script>
</body>
</html>
鉴于这样的非常简单的HTML页面,事件侦听器实际上不会被jQuery.change()方法被触发,所以警报框将不会显示。如果我手动更改输入字段,则该事件正常工作。
跟进: 如果使用jQuery进行事件绑定和触发,没有问题。 问题是,我正在使用一个用纯JavaScript编写的库(JSONEditor [https://github.com/jdorn/json-editor])),并且使用Javascript API添加事件绑定,并且我正在使用的其他库更改了某些输入字段并使用jQuery触发了该事件,并且该事件未被捕获。
javascript不是图书馆。 jQuery是一个JavaScript库。 – 2014-12-02 06:18:09
为什么你不能使用jQuery事件处理程序 – 2014-12-02 06:19:48
此代码工作正常,没有jQuery。小提琴http://jsfiddle.net/qw2z22m9/ – Aditya 2014-12-02 06:20:24