0

使用 Lightwitch 2013 HTML 客户端。我正在尝试添加一个事件,该事件将在选择(或单击)屏幕上的选项卡时触发。使用以下代码我没有得到任何结果:-

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

以上是屏幕上标签的后期渲染代码。相同类型的代码适用于其他屏幕对象,例如文本字段。

知道我做错了什么,或者为什么这不适用于标签?

谢谢 !

4

2 回答 2

0

在创建的函数中试试这个

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

[4] 是标签顺序,从第一个标签的 [0] 开始。

问候斯文

于 2014-08-22T12:55:58.887 回答
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 树搜索最接近的对应 div

myapp.ViewThing.HistoryTab_postRender = function (element, contentItem) {
    $(element).closest("div[data-role='page']").find(".msls-tabs-container li").click(function (e) {
        // use $(this)
    });
};
于 2014-05-24T03:46:14.270 回答