2016-09-05 8 views

答えて

1

HTMLElement.click機能は、clickイベントをトリガーします。 mousedownイベントまたはmouseupイベントは発生しません。これは誰もmousedownまたはmouseupイベントをトリガーできないと言うわけではありませんが、clickイベントをトリガーするJavaScriptコードのケースを除外する場合は、単にmousedownまたはmouseupイベントをリスンすることができます。

ここにはES6の例があります。

const demo1 = document.getElementById('demo1'); 
 
const demo2 = document.getElementById('demo2'); 
 
demo1.addEventListener('click', e => { 
 
    demo2.click(); 
 
}, false); 
 
demo2.addEventListener('mousedown', e => { 
 
    console.log('clicked'); 
 
}, false);
<a href="#" id="demo1">Demo 1</a> <a href="#" id="demo2">Demo 2</a>

あなたが(ない人、正直に)Internet ExplorerまたはSafariのを気にしない場合は、ここでEvent.isTrusted

を使用することができます別のES6の例です。

const demo1 = document.getElementById('demo1'); 
 
const demo2 = document.getElementById('demo2'); 
 
demo1.addEventListener('click', e => { 
 
    demo2.click(); 
 
}, false); 
 
demo2.addEventListener('click', e => { 
 
    console.log(['not trusted', 'trusted'][+e.isTrusted]); 
 
}, false);
<a href="#" id="demo1">Demo 1</a> <a href="#" id="demo2">Demo 2</a>

+0

はい、これは動作しますが、私は好奇心、私はdemo2.addEventListenerをオーバーライドすることができると思います。私は間違っているか正しいですか? –

+0

オーバーライドとはどういう意味ですか? demo2.addEventListener();を定義すると、 –

+0

となります。 ユーザーが再びこのdemo2.addEventListener( 'click'、e => {console.log( 'trusted');})を定義するとどうなりますか?ブラウザのコンソールを使用して、私はかなり確実に2番目の定義の作品です。ユーザーが正当なクリックをしてjavascriptコードを使用していないかどうかを検出できる防弾方法はありますか?記事やブログの投稿を教えてください。 –

関連する問題