1. ホーム
  2. javascript

[解決済み] イベントが人間によって引き起こされたものであるかどうかを確認する

2022-05-13 17:38:45

質問

あるイベントにハンドラをアタッチしていますが、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();
});