我在使用純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