2013-07-04 34 views
0

我試圖觸發工具欄按鈕上的點擊事件按鈕Dojo 1.8.1。Dojo發出單擊事件dojox.mobile.ToolBarButton

<div data-dojo-type="dojox.mobile.ToolBarButton" class="backButton" moveTo="cartView" transition="slide"> 

我已經試過

function backClick(){ 
var backButton = dojo.query(".backButton", dojo.byId(currentView.id))[0]; 
writeLog("backClick::"+backButton); 
if(backButton){ 
    var backDijit = dijit.registry.byId(backButton.id); 
    writeLog("backDijit::" + backDijit.id); 
    writeLog("emit Click"); 
    backDijit.emit("click", {bubbles:true}); 
    writeLog("emit mousedown"); 
    backDijit.emit("mousedown",{bubbles:true}); 
    writeLog("emit mouseup"); 
    backDijit.emit("mouseup",{bubbles:true}); 
    writeLog("touchstart"); 
    backDijit.emit("touchstart"); 
    writeLog("touchEnd"); 
    backDijit.emit("touchend"); 


}else{ 
    //Exit App notification 
    navigator.app.exitApp(); 
} 

} 

鼠標按下/鼠標鬆開組合適用於瀏覽器。 但在設備上它不起作用(Android)。我必須發送什麼事件來「點擊」設備上的按鈕?

回答

0

似乎在觸摸設備上激活工具欄按鈕'點擊'的事件順序是touchstart,之後是touchend。

我想你的例子不起作用,因爲你發出的合成觸摸事件不包含任何數據,而這些數據不能處理它的不同方法。

觸發工具欄按鈕的點擊處理程序的另一種方法是調用其_onClick方法。

+0

我似乎無法調用button按鈕的_onClick,即時猜測由於動作偵聽器是使用dojo.on偵聽器在後臺創建的(moveTo標誌),所以_onClick不會執行任何操作。 – tik27

+0

如果您的主要目標是執行爲您定義的轉換後退按鈕,您還可以通過執行視圖的performTransition方法來執行此操作(而不是檢索後退按鈕以模擬點擊它,檢索視圖並執行其performTransition方法)。你想要做什麼? –

+0

如果該應用程序有4個視圖,那麼啓動後按鈕會更容易,因爲它已經具有寫入它的前一個視圖的名稱。我看到的唯一選擇是,如果這不會工作是必須創建一個過去的視圖名稱數組手動回溯應用程序。 dojo.history看起來很有趣,但不確定它是否會處理視圖轉換。 – tik27