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 ハックやコードの編集なしでは不可能です。ライブラリが同等のメソッドを公開していないことが確実な場合、唯一の本当の解決策はそれを編集することです。

于 2012-08-12T16:49:54.533 に答える
0

これを実現するには、次の 2 つのオプションがあります。

1) コードをこの無名関数に追加して、コードがこれらのカプセル化された関数と同じスコープ内にあるようにします。(ライブラリを侵害しているため、あまり良くありません)

2) 変数の割り当てを行い、必要な関数を含む return-statement を追加します: (ライブラリ コードを独自のコードと混ぜずに、いくつかの関数を公開するだけでよいため)

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 に答える