如何重用一个功能?

时间:2014-05-07 15:00:23

标签: jquery

我在网上发现了一些代码来创建简单的标签。它适用于类的每个(单个)实例。 但是,如果我有两个不同的类,我需要它为两个类做同样的事情呢?

我目前正在复制该功能。我知道,它胜过构建函数的目的。因此,新手问题:我如何为多个课程重复使用该功能的代码。

谢谢!

$('.class1').each(function(){
    // code for making tabs work
    // 
});


 $('.class2').each(function(){
    // code for making tabs work
    //
});

2 个答案:

答案 0 :(得分:0)

您可以声明一个使标签在其他地方工作的功能,例如:

function makeTabsWork()
{
    // code for making tabs work
}

然后将该函数分配给各个类,如下所示:

$('.class1').each(makeTabsWork);

$('.class2').each(makeTabsWork);

然而,更有效的方法是:

$('.class1, .class2').each(makeTabsWork);

但是,由于您希望通过JavaScript激活类的两个不同实例,因此您只需指定一个公共属性,例如:

<div class="class1" rel="nav">

<div class="class2" rel="nav">

然后只调用一次这样的函数:

$('div[rel=nav]').each(makeTabsWork);

答案 1 :(得分:0)

您可以在javascript的开头定义一个函数,如下所示:

<script type="text/javascript>
    function foo() {
    }
</script>

之后你可以这样称呼:

$(".class1").each(foo);

这只是 MANY 方法之一。我强烈建议您阅读更多有关基本Javascript语法的内容,以找到解决问题的其他方法!

可能有助于is here的一个教程。如果其他人对教程有更多建议,请随时编辑我的答案或在评论中提出建议!

各种方法

// define a global function
function globalFoo() { };

// Define a global function as a variable:
var globalFooVar = function () { };

// or in run:
$(function () {
   // define your function inside of run (scoped definition)
   function scopedFoo() { };

   // or a scoped variable
   var scopedFooVar = function () { };


   // but no matter how you define it you basically use it the same way:
   $("selector").each(globalFoo);
   $("selector").each(globalFooVar);
   $("selector").each(scopedFoo);
   $("selector").each(scopedFooVar);
});