为什么这个事件会发射两次?
解决方法是检查event.args,但事件仍然会触发两次。
$('#input').jqxInput({
width: 200,
height: 25
});
var changedCount = 0;
$('#input').on('change', function(event) {
console.log("changed");
console.log(event.args != undefined)
changedCount++;
$("#log").html("total times fired: " + changedCount);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://jqwidgets.com/public/jqwidgets/styles/jqx.base.css" rel="stylesheet" />
<script src="http://jqwidgets.com/public/jqwidgets/jqx-all.js"></script>
<input id="input">
<div id='log'></div>
答案 0 :(得分:0)
试试这个, Jsfiddle
而不是更改尝试模糊。
var changedCount = 0;
$('#input').on('blur', function(event) {
console.log("changed");
console.log(event.args != undefined)
changedCount++;
$("#log").html("total times fired: " + changedCount);
});
答案 1 :(得分:0)
尝试以下方法:
$('#input').on('change', function(event) {
if (!event.args) return;
console.log("changed");
console.log(event.args != undefined)
changedCount++;
$("#log").html("total times fired: " + changedCount);
});
这样做可以确保引发jQWidgets自定义事件,而不是INPUT标记的标准Javascript更改事件。