.change()不会在输入时触发
问题描述:
如何在jQuery中以编程方式触发.on('input')
? .change()
或.trigger('change')
似乎不太工作。.change()不会在输入时触发
这里有一个演示: https://jsfiddle.net/4o3v2c6s/
答
使用trigger('input')
而不是change()
简写。
$(".val-trigger").on('input', function() {
console.log("this is triggered on input! :)");
});
$(".val-trigger").change(function() {
console.log("triggered!");
});
setTimeout(function() {
$('input[type="text"]').each(function() {
$("#example").val("test").trigger('input'); // < change here
});
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="val-trigger">
<input type="text" id="example" />
</div>
答
您可以尝试更新的小提琴jsfiddle.net/bharatsing/4o3v2c6s/2/
setTimeout(function() {
$('input[type="text"]').each(function() {
$("#example").val("test").change();
$("#example").val("test").trigger('input');
});
}, 1000);
答
只要给函数的名称,并调用它,只要你喜欢:
function doAThing() {
alert("triggered!");
}
// Auto:
$(".val-trigger").change(doAThing);
// Manual:
doAThing();