の拡張メソッドを呼び出すことはできません。は、私は以下のようなHTML何かを持っているjQueryオブジェクト
quote = $(".quote.prototype").clone().show()
.removeClass("prototype").addClass("live")
.addClass(foo)
.appendTo("#quoteContainer");
$.extend(quote, QuoteCalculator);
quote.setQuoteClass(foo);
Fooは、 "q"と引用符の数を組み合わせた変数です。 QuoteCalculatorクラスには、(ex。)shout()など、いくつかの呼び出したいメソッドがあります。ここではQuoteCalculatorの一部です:
var QuoteCalculator = {
...
shout: function() {
console.log("hello from calculator");
},
...
};
私はプログラムの別のポイントで、シャウトメソッドを呼び出したいと思います。ここに私のコードは次のようになります。)(this.shout [このエラーのブレーク] this.shoutが機能 ではありません。:ここでは
$(".quote.live").each(function() {
this.shout();
});
は言う放火犯であります
編集:これは変わった部分です:quote.setQuoteClass(foo)を呼び出してもエラーは発生しません。逆に、それは完全に動作します。
なぜこの問題が発生するのですか、原因は何ですか?また、どのように修正しますか?
+1私はその可能性を考慮していませんでしたが、意味があります。彼はDOM要素を拡張していると思っているか、jQueryのプロトタイプを拡張していると思っています。どちらも実際には起こっていません。 – JAAulde
getはDOMを拡張するでしょうか? – BlackSheep
ありがとう、私はこれを試み、それは問題を解決した。 +1素晴らしいです。 – BlackSheep