JQ Mobile Collapsible - хотите что-то сделать, когда складная разворачивается .. не могу понять, как его запустить - PullRequest
1 голос
/ 04 марта 2012

У меня есть несколько страниц с несколькими разборными на них. Когда один развернут, я хочу закрыть все остальные. Я прочитал, что мне нужно использовать .trigger («развернуть») и .trigger («свернуть»), чтобы динамически открывать и закрывать ... НО КАК мне запускать событие, когда фактически открывается открываемое окно?

Я думал, МОЖЕТ быть событие щелчка ... $('#myExpandable').click() - не уходи. Я пытался связать .bind('expand', function() {} ); - не уходи ... И я попробовал .live('expand', function() {} ); .. все безрезультатно.

Может кто-нибудь подсказать мне здесь?

Спасибо!

1 Ответ

2 голосов
/ 04 марта 2012

Вы можете привязать к событию expand элемента, а затем вызвать событие collapse для остальных объектов:

//since we don't know when the page will be injected into the DOM,
//we can bind to it's elements once it's been added to the DOM and is about to be initialized
$(document).delegate('#my-page-id', 'pageinit', function () {

    //cache each of the collapsible elements in a variable
    var $collapse = $(this).find('[data-role="collapsible"]');

    //bind to each collapsible's `expand` event
    $collapse.bind('expand', function () {

        //when a collapsible is expanded, collapse all the others on this page
        $collapse.not(this).trigger('collapse');

    });
});​

Вот демоверсия: http://jsfiddle.net/FhZVn/

...