2

私はjavascriptで作業しており、このようなことをしました

​var div = document.getElementById("bob");
div.addEventListener("click", function(){alert('foo');});​​​​​​​​​​​

// all tests fail    
//div.click();
//div.onclick();
//div.onClick();

var div2 = document.getElementById("adam");
// works
//div2.onclick();

var div3 = document.getElementById("iris");
div3.onclick = function(){alert('wat');};
// works
//div3.onclick();

//How do I trigger the div (the first div, "bob") "click" event?

コードはこちら: http://jsfiddle.net/TVrfF/、テストケースのコメントを外します

では、dojo またはプレーンな JavaScript を使用して、addEventListener (例: div "bob") を介してクリック イベントの設定をトリガーするにはどうすればよいでしょうか?

また、私が抱えているこの問題のために、今後 addEventListener の使用を放棄し、 element.onclick = function(){} を使用する必要がありますか? addEventListener の利点は何ですか?

4

2 に答える 2

2

これを試して:

div.dispatchEvent("click");

ドキュメントはこちら:

https://developer.mozilla.org/en/DOM/element.dispatchEvent

于 2012-04-04T22:35:00.033 に答える
0

関数を直接呼び出すのではなく、クリックをシミュレートして関数を呼び出す必要がある理由はありますか?

var fnDoWork = function() {
    alert('do work');
}

var div = document.getElementById("bob");
dojo.connect(div, "onclick", fnDoWork);​​​​​​​​​​​

// some other code
fnDoWork();

あなたが失うのは、クリックのマウス座標を与えるイベントがないことです。ほとんどの場合、これは大したことではありません。これらは、SVG を使用する場合にのみ必要でした。

于 2012-04-05T10:58:30.450 に答える