2014-04-28 70 views
0

使用Lightwitch 2013 HTML客戶端。 上午試圖添加一個事件,當屏幕上的標籤被選中(或點擊)時將觸發。 我不與下面的代碼得到任何結果: -將事件添加到Lightswitch HTML客戶端中的選項卡選項

myapp.ViewThing.HistoryTab_postRender = function (element, contentItem) { 
    $(element).click(function() { alert("clicked on tab !!!"); }); 
    $(element).select(function() { alert("selected tab !!!"); }); 
}; 

上面是後期渲染代碼,屏幕上的選項卡。 相同類型的代碼適用於其他屏幕對象,例如文本字段。

任何想法我做錯了,或爲什麼這不應該爲製表符?

謝謝!

回答

0

你可以使用jQuery掛鉤相應的監聽器選項卡容器(每屏在任何postRender事件一次),並只處理當前激活的標籤

myapp.ViewThing.HistoryTab_postRender = function (element, contentItem) { 
    $(".msls-tabs-container li").on("click", function (e) { 
     $.each(contentItem.screen.details.pages, function() { 
      if (this.___isActivated) { 
       // use 'this' 
      }; 
     }); 
    }); 
}; 

另一種可能是搜索DOM樹使用

myapp.ViewThing.HistoryTab_postRender = function (element, contentItem) { 
    $(element).closest("div[data-role='page']").find(".msls-tabs-container li").click(function (e) { 
     // use $(this) 
    }); 
}; 
+0

我用了你的第一個建議,但似乎在點擊時,激活的標籤是點擊前處於活動狀態的標籤。無論如何,使用這個至少我可以在點擊任何標籤時調用一些代碼,現在可能已經足夠了。 – guraaku

0

最接近相應的DIV在創建函數試試這個

$($.mobile.activePage 
.find(".msls-screen-tab")[4]).on("click", function (e) { 
    //Do something. 
}); 
}, 0); 

[4]是製表符的順序,從第一個製表符的[0]開始。

問候 斯文

相關問題