如何从另一个函数中调用特定的jquery函数?

时间:2012-01-08 11:13:06

标签: javascript jquery

我有以下代码无效

的jQuery

jQuery(window).bind("load", function() {
    function effects(content_name,active_name)
    {
    // switch all tabs off
        $(active_name).removeClass("active");

    // switch this tab on
        $(this).addClass("active");

    // slide all content up
        $(content_name).slideUp();

    // slide this content up
        var content_show = $(this).attr("title");
        $("#"+content_show).slideDown();

    }

    $("a.tab_1").click(function () {    
        var content_name = '.content_a';
        var active_name = 'a.tab_1.active';
        effects(content_name,active_name);

    });
            $("a.tab_2").click(function () {    
        var content_name = '.content_b';
        var active_name = 'a.tab_2.active';
        effects(content_name,active_name);

    });
            $("a.tab_3").click(function () {    
        var content_name = '.content_c';
        var active_name = 'a.tab_3.active';
        effects(content_name,active_name);//create effects with the content         
    });
});

它的一组标签组数量最多为8个。编写单个函数会对加载时间产生负面影响。

2小时后回答:

谢谢大家指出代码中的“effetcs”错误。

另一个错误是我所做的并没有将“$(this)”作为参数传递给被调用函数“effects”。

我已经连接了必要的更改并且代码有效的链接。

[jsfiddle] http://jsfiddle.net/phyGS/2/

1 个答案:

答案 0 :(得分:2)

在第一个块中将effetcs替换为effects,并替换每次出现的

effects(content_name,active_name);

effects.call(this, content_name, active_name);

call方法为函数this的{​​{1}}属性指定了新值。