2017-07-28 4 views
3

私はコンソールエラー

$(...)を取得しています。functionNameを()関数


ではありません。これはされて私の関数呼び出し

$("button").functionName(); 


これは私の機能です

$.fn.functionName = function() { 
     //Do Something 
}(jQuery); 


なぜこのエラーが発生し、このエラーを回避するのですか?

+1

それはだ '(jQueryの)'構文に間違いはありますが、IIFEを使用することを期待しているかのように、コードに追加する必要があります。これを削除すると、コードが正常に動作します。 –

+0

これは通常、IIFEに続いて関数呼び出しがあるときに発生します。 '(function(){...})()init();' IIFEの前後に ';'を追加してみてください – Rajesh

答えて

0

は、次の構文を使用してみてください:

jQuery.fn.extend({ 
    functionName: function() { 

    } 
}); 
0

これは自己呼び出し機能で、あなたのコードから

$.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>

0
$.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>

関連する問題