2017-04-14 1 views
1

jquery関数が存在するかどうか確認したいと思います。私たちは、ボタンをクリックしたときに例重複関数を避けるためにjquery関数が存在するかどうかを確認するには

var i = 0; 

function callbuttonfunc(){ 
$("#button").click(function(){ 
    i += 1; 
}); 
} 
console.log(i); 

我々はcallbuttonfunc(呼び出す場合)3回、増分値があるため、重複する機能の3倍になります。だから私は定義されていない関数を実装したいだけです。次に、それを定義する関数を呼び出します。私は$(document).ready()を使うことができましたが、私はajaxウェブサイトを構築します。だから、divが作成されたとき。定義されていないすべての機能をチェックします。ありがとうございました

+0

if(functionname == "undefined")? – Stavm

答えて

0

変数を使用して、イベントハンドラが既にボタンにバインドされているかどうかを追跡します。

var i = 0; 
var clickBound = false; 

function callbuttonfunc(){ 
    if (clickBound) return; 
    $("#button").on('click', function(){ 
     i += 1; 
    }); 
    clickBound = true; 
} 
0

その関数が定義されている場合は、単にコードの下に使用してチェックすることができます。

function callbuttonfunc(){ 
$("#button").click(function(){ 
    i += 1; 
}); 
} 
if(isFunction(callbuttonfunc)) alert('is of type function'); 
if(isDefined(callbuttonfunc)) alert('if this is a function, it is defined'); 

は、この情報がお役に立てば幸いです!

+0

私は$( "#button")をチェックすることを意味します。click(function(){});関数callbuttonfunc()をチェックしないようにします – Bobby

+0

ボタンが次のようにトリガされているかどうかを確認できます:if(e.originalEvent!== undefined) { alert( 'button clicked'); } – Gagzzz

関連する問題