Jquery标签插件问题

时间:2011-04-26 21:31:00

标签: jquery jquery-plugins

我创建了(修改了一个来自谷歌谷歌的概念)一个轻量级的标签插件,让我满意90%。然而,缺少一个非常基本的关键因素,这让我感到有些伤感:)。

我可以点击选项卡并运行客户端选择代码(回调函数)而不会出现问题并将其调整为完全符合我的要求。然而,有一个边缘案例暗指我虚弱的思维过程。基本上,我希望在访问页面时自动选择一个选项卡(最后一次单击的选项卡索引保存在cookie中),以便向用户显示用户上次查看的信息,而不是默认的第1个标签。现在,我很清楚我可以使用jquery-ui标签实现这个目标,但由于一些我不会厌烦你的原因,这不是一个选择(< strong> 现在!! - 如果我想要的是不可能的,那么我可能不得不重新考虑那个选项。)

我已经将核心代码放在我们的旧密友签名小提琴手上,因为它可能更容易展示我所处的位置,并且会让你们更容易调整一下。

希望你能提供帮助。这是链接:Fiddler link to plugin code and simple demo

一切顺利......

2 个答案:

答案 0 :(得分:2)

实现此目标的一种简单方法是以编程方式触发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/

答案 1 :(得分:0)

不使用官方插件的任何特殊原因?

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