回答:
あなたはチェックすることができます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();
});:)
                    event.isTrigger
                    originalEventイベントがによってトリガーされたときにjQueryにデータが読み込まれるように見えDOM.click()ますが$($("#try")[0]).click();、を使用できます。
                    上記よりも簡単です:
$('.checkbox').change(function(e){
  if (e.isTrigger)
  {
    alert ('not a human');
  }
});
$('.checkbox').trigger('change'); //doesn't alertこれを行う唯一の方法triggerは、ドキュメントのとおり、呼び出しで追加のパラメーターを渡すことだと思います。
$('.checkbox').change(function(e, isTriggered){
  if (!isTriggered)
  {
    alert ('human');
  }
});
$('.checkbox').trigger('change', [true]); //doesn't alert受け入れられた答えは私にとってはうまくいきませんでした。それから6年が経過し、それ以来jQueryは大きく変化しました。
たとえば、jQuery 1.9.xではevent.originalEvent常に戻ります。trueオブジェクトは常に存在しますが、内容は異なります。
jQueryの新しいバージョンを使用している人は、これを試すことができます。Chrome、Edge、IE、Opera、FFで動作します
if ((event.originalEvent.isTrusted === true && event.originalEvent.isPrimary === undefined) || event.originalEvent.isPrimary === true) {
    //Hey hooman it is you
}現在、ほとんどのブラウザーはevent.isTrustedをサポートしています。
if (e.isTrusted) {
  /* The event is trusted: event was generated by a user action */
} else {
  /* The event is not trusted */
}ドキュメントから:
インターフェイスのisTrusted読み取り専用プロパティは、イベントがユーザーアクションによって生成された場合 はtrue 、スクリプトによってイベントが作成または変更された場合、またはEventTarget.dispatchEvent()を介してディスパッチされた場合は falseです。
EventBoolean
onmousedownを使用して、マウスクリックとtrigger()呼び出しを検出できます。
次のように、マウスの位置を確認する可能性について考えます。
すべてのコードを制御できる場合は、$(input).focus()以外のエイリアンコールはありませんsetFocus()。
グローバル変数を使用するのが正しい方法です。
var globalIsHuman = true;
$('input').on('focus', function (){
    if(globalIsHuman){
        console.log('hello human, come and give me a hug');
    }else{
        console.log('alien, get away, i hate you..');
    }
    globalIsHuman = true;
});
// alien set focus
function setFocus(){
    globalIsHuman = false;
    $('input').focus();
}
// human use mouse, finger, foot... whatever to touch the input一部のエイリアンがまだ$(input).focus()別の惑星から電話をかけたい場合。幸運を祈るか、他の答えを確認してください
setFocus()-それは人々がフォーカスイベントをトリガーすることを防ぎません。setFocus()何も書かないことはまた、人々がそれを呼ぶことを妨げるでしょう、それで私は利益を見ません。実際、人々はまだ電話$('input').focus()してそれを通過させることができました。
                    (function(){/*your code here*/})();これにより、setFocus関数が呼び出されないようにし、ブール値が外部スクリプトによって変更されないようにします。