检查事件是否由人触发
2022-08-30 03:03:30
我有一个附加到事件的处理程序,我希望它仅在由人而不是由 trigger() 方法触发时才执行。如何区分?
例如
$('.checkbox').change(function(e){
if (e.isHuman())
{
alert ('human');
}
});
$('.checkbox').trigger('change'); //doesn't alert
我有一个附加到事件的处理程序,我希望它仅在由人而不是由 trigger() 方法触发时才执行。如何区分?
例如
$('.checkbox').change(function(e){
if (e.isHuman())
{
alert ('human');
}
});
$('.checkbox').trigger('change'); //doesn't alert
你可以检查:如果它被定义为点击是人为的:e.originalEvent
看看小提琴 http://jsfiddle.net/Uf8Wv/
$('.checkbox').change(function(e){
if (e.originalEvent !== undefined)
{
alert ('human');
}
});
我在小提琴中的例子:
<input type='checkbox' id='try' >try
<button id='click'>Click</button>
$("#try").click(function(event) {
if (event.originalEvent === undefined) {
alert('not human')
} else {
alert(' human');
}
});
$('#click').click(function(event) {
$("#try").click();
});
比上面更直接的是:
$('.checkbox').change(function(e){
if (e.isTrigger)
{
alert ('not a human');
}
});
$('.checkbox').trigger('change'); //doesn't alert