0

向我提供了一个 js/css 模板。它在交互式事件处理方面很有天赋,但我在 js/jquery 方面没有天赋。

在其 js 库中,有一个 .js 文件,该文件有一些代码,例如:

(function ($) {
...
})(jQuery);

大多数事情都发生在其中。

在这个上层函数中有一些“小独立函数”。

在这个上层/包装器/非命名函数中的一些行,将这些称为“小独立函数”。

另外,我想调用这些“小独立函数”,但我不知道如何。

因为在“ (function ($) {...})(jQuery);”中那些称这些“小独立函数”的行中有一些局部变量。

我认为一些代码可以帮助我说明:

(function ($) {

if(...){
var items;

addItem(items)
}

function addItem(funcitems){}
...
})(jQuery);

我的问题是,我如何调用 additem,如何将“项目”传递给它?

我想在自定义事件之后在页面的自定义部分调用它。

4

2 回答 2

1

由于它们没有以任何方式暴露出来,因此没有一些疯狂的 js hack 或编辑代码是不可能的。如果您确定该库没有公开等效方法,那么唯一真正的解决方案是对其进行编辑。

于 2012-08-12T16:49:54.533 回答
0

您有两种选择来实现这一目标:

1)将您的代码添加到此匿名函数中,以便您的代码与这些封装函数处于同一范围内。(不太好,因为您正在损害图书馆)

2) 进行变量赋值并使用您需要的函数添加返回语句:(更好,因为您不会将库代码与您自己的代码混合,而只是公开一些函数)

var extLib = (function ($) {
   ...
   return{
      /* return the functions you need - written in object literal notation */
      addItem : addItem
      /*[,exposedName : internalName] */
   }
})(jQuery);

现在您可以addItem通过调用来访问该函数extLib.addItem(item)

于 2012-08-12T16:54:17.680 回答