JQuery 触发器('input')不触发原生 JavaScript 输入事件
JQuery trigger('input') does not fire native JavaScript input event
我有一个代码需要在带有日期选择器的输入上手动触发输入事件。
代码如下:
input.on('apply.daterangepicker', function(e) {
input.trigger('input');
});
input.on('input', function(e) {
console.log('11111111111111111111');
});
document.getElementById('filter-created-at').addEventListener('input', function(e) {
console.log('22222222222222222222');
});
第一个 jQuery 事件侦听器工作正常。但是第二个 pure JavaScript 没有捕捉到输入事件。不明白。如何使用纯 JavaScript addEventListener()
捕获来自 trigger()
的输入?
您可以使用Element#dispatchEvent
触发输入事件。
document.getElementById('filter-created-at').addEventListener('input', function(e) {
console.log('Regular input');
});
$('#filter-created-at').on('input', function(e) {
console.log('jQuery input');
});
document.getElementById('filter-created-at').dispatchEvent(new Event('input', {
bubbles: true
}))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="filter-created-at" />
我有一个代码需要在带有日期选择器的输入上手动触发输入事件。
代码如下:
input.on('apply.daterangepicker', function(e) {
input.trigger('input');
});
input.on('input', function(e) {
console.log('11111111111111111111');
});
document.getElementById('filter-created-at').addEventListener('input', function(e) {
console.log('22222222222222222222');
});
第一个 jQuery 事件侦听器工作正常。但是第二个 pure JavaScript 没有捕捉到输入事件。不明白。如何使用纯 JavaScript addEventListener()
捕获来自 trigger()
的输入?
您可以使用Element#dispatchEvent
触发输入事件。
document.getElementById('filter-created-at').addEventListener('input', function(e) {
console.log('Regular input');
});
$('#filter-created-at').on('input', function(e) {
console.log('jQuery input');
});
document.getElementById('filter-created-at').dispatchEvent(new Event('input', {
bubbles: true
}))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="filter-created-at" />