2011-01-05 54 views
0

我有一個ImageButton的設置,其中在OnInit事件,我設置的Click事件Hitwise公司對ImageButton的單擊事件跟蹤ASP.NET

btnJoinNow.Click += new ImageClickEventHandler(btnJoinNow_Click); 

在客戶端,我已經安裝一個jQuery只有當按鈕被按下時,點擊事件纔會觸發命中跟蹤事件。我遇到的問題是,按鈕事件似乎在跳動JavaScript而不是跟蹤。在imagebutton事件觸發服務器端之前,我需要暫停1秒。

我試過以下,但總是發生。我也嘗試過e.preventDefault(),但這只是完全停止了回發。

$("input[id$='btnJoinNow']").click(function(e) { 
    Spots.HitWise(); 

    setTimeout(function(){ 
    }, 5000); 
}); 

編輯:

我能得到這個工作的唯一辦法,是通過執行以下操作:

$("input[id$='btnJoinNow']").click(function(e) { 
    Spots.HitWise(); 

    setTimeout(function(){ 
     $("input[id$='btnJoinNow']").unbind('click').bind('click', function(e){}); 
    }, 1000); 

    return false; 
}); 

這就使得有足夠的時間Hitwise的事件進行跟蹤,然後清除點擊事件並再次調用自己。

回答

1

使用OnClientClick

<asp:ImageButton id="btnTest" runat="server" 
     OnClientClick="javascript:FireHitwise();" .../> 

<script type="text/javascript"> 
function FireHitwise(){ 
    Spots.Hitwise(); 
    return true;//returning false will not fire server side handler 
} 
</script> 
+0

噢,這是更好的+1 – user44298 2011-01-05 06:13:48

+0

的問題,這一點,是Hitwise的事件沒有時間開火。返回true和隨後的回發擊敗跟蹤事件。即使把一個javsacript延遲不起作用。我已經打算在下一頁發佈該事件,以便在頁面加載時加載,而不必擔心計時問題。我之前可以使用的唯一方法是在我的編輯中 – mickyjtwin 2011-01-10 05:49:13