2012-04-04 16 views
2

私はJavaScriptで取り組んできましたし、このdojo/javascriptを使用してクリックイベントをトリガーしますか? (例えばDIV <a href="http://jsfiddle.net/TVrfF/" rel="nofollow">http://jsfiddle.net/TVrfF/</a>、 例だから私はaddEventListenerを経由してクリックイベントのセットアップをトリガすることができますどのように <p></p>をテストするコメント解除:

​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? 

コードのようなものがここにあるんでした"bob")dojoまたはplain javascriptを使用していますか?

また、addEventListenerを使用して放棄し、この問題が原因でelement.onclick = function(){}を使用しますか? addEventListenerの利点は何ですか?

+1

document.getElementById( "iris")。click()? – binarious

答えて

2

これを試してみてください:ここ

div.dispatchEvent("click"); 

ドキュメント:

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

+0

はIE、Chrome、その他の主要ブラウザで使用できますか? IE 9の – Derek

+0

はfireEventを使用します:http://msdn.microsoft.com/en-us/library/ie/ms536423%28v=vs.85%29.aspx –

+0

私はあまりにも早く話しました...このアプローチは、カスタムイベント、および 'Event'オブジェクトが渡されなければなりません。イベント名は渡されません。 –

0

は、あなただけの関数を直接呼び出すと対照的にクリックをシミュレートすることにより、あなたの関数を呼び出す必要がある理由はありますか?

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

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

// some other code 
fnDoWork(); 

あなたが失うものは、クリックのマウス座標を示すイベントがないことです。ほとんどの場合、これは大きな問題ではありません。私はSVGを扱う際にこれらを必要としてきました。

関連する問題

 関連する問題