JQuery вкладки плагин вопрос - PullRequest
1 голос
/ 27 апреля 2011

Я создал (изменил концепцию, полученную через г-н Google) небольшой плагин для вкладок, который работает на 90% к моему удовлетворению.Тем не менее, один очень базовый ключевой ингредиент отсутствует, и это делает меня немного грустным:).

Я могу нажать на вкладку и без проблем запустить код выбора клиента (функция обратного вызова) и настроить его, чтобы сделать точночто я хочу.Однако есть крайний случай, который намекает на мои слабые мыслительные процессы.По сути, мне бы хотелось, чтобы вкладка выбиралась автоматически при посещении страницы (индекс последней нажатой вкладки сохраняется в файле cookie), чтобы им была представлена ​​информация, на которую последний раз смотрел пользователь, а не первая по умолчанию.вкладка.Теперь, Я хорошо знаю, что могу использовать вкладку jquery-ui для достижения этой цели , но по нескольким причинам, с которыми я не буду утомлять вас, это не вариант ( на данный момент !! - если то, чего я желаю, невозможно, возможно, мне придется вернуться к этой опции).

Я поместил основной кодна нашем старом скрипаче с приятелем-чумом, поскольку, возможно, легче продемонстрировать, куда я попал, плюс позволит вам, ребята, немного подправить.

Надеюсь, вы поможете.Вот ссылка: Ссылка Fiddler на код плагина и простое демо

всего наилучшего ...

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Простой способ сделать это - программно вызвать событие click:

$tabs.find("ul li").eq(tabIndex).click();  

Вот обновленный пример, который автоматически выбирает третью вкладку:

http://jsfiddle.net/andrewwhitaker/MUPgz/4/

Обновление:

Чтобы инкапсулировать вызов внутри плагина, я изменил его следующим образом:

(function($) {
    var activeTab;
    var opts;
    var methods = {
        init: function(options) {
            /* Snip (Previous init code) */
        },
        show: function(index) {
            return this.each(function() {
                $(this).find("ul li").eq(index).trigger("click");
            });
        }
    };

    $.fn.tabify = function(method) {

        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        }
        else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        }
    };
})(jQuery);

Использование:

$tabs.tabify("show", 2);

Обновленный пример: http://jsfiddle.net/andrewwhitaker/MUPgz/5/

0 голосов
/ 27 апреля 2011

какая-то особая причина не использовать официальный плагин?

http://jqueryui.com/demos/tabs/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...