私はコンソールエラー
$(...)を取得しています。functionNameを()関数
ではありません。これはされて私の関数呼び出し
$("button").functionName();
これは私の機能です
$.fn.functionName = function() {
//Do Something
}(jQuery);
なぜこのエラーが発生し、このエラーを回避するのですか?
私はコンソールエラー
$(...)を取得しています。functionNameを()関数
ではありません。これはされて私の関数呼び出し
$("button").functionName();
これは私の機能です
$.fn.functionName = function() {
//Do Something
}(jQuery);
なぜこのエラーが発生し、このエラーを回避するのですか?
は、次の構文を使用してみてください:
jQuery.fn.extend({
functionName: function() {
}
});
これは自己呼び出し機能で、あなたのコードから
$.fn.functionName = function() {
//Do Something
alert('worked');
};
$("button").functionName();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Button</button>
$.fn.functionName = function() {
//Do Something
}(jQuery);
を(jquery)
を削除します。自己呼び出し関数の利点は、(グローバルを宣言することなく)グローバル名前空間を乱雑にすることなくコードを一度実行できることです。
$.fn.functionName = function() {
alert('Immediately Invoked');
}(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button> Button </button>
前のコードスニペットを実行する場合は、自動的に関数を呼び出すことなく、機能やalert the message
を呼び出します。
あなたが機能を使用できるように(jQueryの)を削除する必要がある問題を修正するには:あなたがランダムに追加したので
$.fn.functionName = function() {
this.css('color', 'red');
}
$("button").functionName();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Button 1</button>
<button>Button 2</button>
それはだ '(jQueryの)'構文に間違いはありますが、IIFEを使用することを期待しているかのように、コードに追加する必要があります。これを削除すると、コードが正常に動作します。 –
これは通常、IIFEに続いて関数呼び出しがあるときに発生します。 '(function(){...})()init();' IIFEの前後に ';'を追加してみてください – Rajesh