2014-03-03 36 views
0

我在JQuery的這樣的綁定事件:)如何檢查綁定事件是否被調用?

$j("#chart").bind('jqplotDataClick', 
    function(ev, seriesIndex, pointIndex, data) 
    { 

    }); 

在另一個功能adjustLine(,我要檢查,如果上述綁定事件已被或不叫。你知道該怎麼做嗎?謝謝!

function adjustLine() 
{ 
    // if the jqplotDataClick event is called, do following 

    //else 
} 
+2

添加一個變量到您的eventListener並檢查。 – putvande

+2

你最好解釋你爲什麼需要這個?! –

+1

@ A.Wolff是的,它聽起來有點像XY問題...... – Alnitak

回答

2

設置一個全局變量作爲標誌,做的東西,

var flag=false; 
$j("#chart").bind('jqplotDataClick', 
    function(ev, seriesIndex, pointIndex, data) 
    { 
     flag=true; 
    }); 

function adjustLine() 
{ 
    // if the jqplotDataClick event is called, do following 
    if(flag) 
    { 

    } 
} 
+1

不,_don't_使用全局變量,在閉包中使用一個綁定。 – Alnitak

+0

謝謝! Anoop!好主意! –

+0

@Alnitak感謝您的信息。這種方法有什麼問題嗎? –

0

如果你的目的只是呼籲,一旦處理程序,您可以使用.one()而不是.bind()和一個使用後的處理程序會自動綁定。

1

我會使用data API存儲的標誌值

$j("#chart").bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, 
data) { 
    j$(this).data('jqplotDataClicked', true); 
}) 


function adjustLine() { 
    if (j$('#chart').data('jqplotDataClicked')) { 
     //clicked 
    } else { 
     //not 
    } 
} 
0

先解除任何以前綁定的事件。這不會讓您將同一個事件重新綁定到選擇器。

$('#myButton').unbind('click', onButtonClicked) //remove handler 
       .bind('click', onButtonClicked); //add handler 
相關問題