这是我的代码:
$("input[type=text]").on("input", function(){
console.log("input event fired.");
})
$("input[type=button]").on("click", function(){
var event = new Event('input');
$("input[type=text]").dispatchEvent(event);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
正如您所看到的,当您在输入中写入内容时,input
事件也会起作用。如何在单击按钮时模拟该事件?
答案 0 :(得分:2)
jQuery使用trigger
如果要使用dispachtEvent,则需要DOM元素。
$("input[type=text]").on("input", function(){
console.log("input event fired.");
})
$("input[type=button]").on("click", function() {
// EITHER
$("input[type=text]").trigger("input");
// OR
var event = new Event('input');
$("input[type=text]")[0].dispatchEvent(event); // DOM
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
&#13;
答案 1 :(得分:1)
$("input[type=text]").on("input", function(){
console.log("input event fired.");
})
$("input[type=button]").on("click", function(){
$("input[type=text]").trigger("input");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
答案 2 :(得分:0)
您只需使用 .trigger() 方法按名称触发事件,如:
$("input[type=button]").on("click", function(){
$("input[type=text]").trigger("input");
})
$("input[type=text]").on("input", function() {
console.log("input event fired.");
})
$("input[type=button]").on("click", function() {
$("input[type=text]").trigger("input");
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
&#13;
答案 3 :(得分:0)
在jQuery中,您只需在元素上调用事件类型即可。
要在元素上调用click事件,请执行以下操作:
$("foo").click();
对于输入字段,最佳选择通常是
$("foo").change();