Добавить событие для выбора вкладки в HTML-клиенте Lightswitch

Использование HTML-клиента Lightwitch 2013. Я пытаюсь добавить событие, которое будет срабатывать, когда выбрана вкладка на экране (или нажата). Я не получаю никакого результата со следующим кодом:-

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

Выше приведен код пост-рендера для вкладки на экране. Такой же код работает для других объектов экрана, например, текстовых полей.

Любая идея, что я делаю неправильно, или почему это не должно работать для вкладок?

Спасибо!

2 ответа

Вы можете использовать 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)
    });
};

Попробуйте это в созданной функции

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

[4] - это порядок вкладок, начиная с [0] для первой вкладки.

С уважением, Свен

Другие вопросы по тегам