2011-07-17 83 views
0

我有以下單擊事件,它調用codeigniter方法來更新我的數據庫。它用於跟蹤鏈接點擊。它在IE9中工作,但不在Firefox 3.6.3中工作。firefox中的jQuery點擊事件問題

$(".link").click(function(event) { 
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id")); 
}); 

它調用正確的php文件併發送正確的信息,但得到一個空的響應。如果我在獲取後添加警報,它會起作用,而且如果我阻止默認事件,它也會起作用。是否有可能firefox沒有完成ajax,因爲代碼一旦加載新頁面就消失了?

爲了測試這一點,我修改了代碼:

$(".link").click(function(event) { 
    event.preventDefault(); 
    var link = $(this); 
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id")); 
    window.document.location.href = $(this).attr("href"); 
}); 

我認爲,這將不得不等待,直到重定向的GET完成,但也不管用。如果我拿出重定向,但離開preventDefault,它跟蹤點擊就好(但顯然不會將用戶發送到站點。)

如果需要,鏈接的html是:

<a href="<?= $url ?>" site_id="<?= $site_id ?>" class="link"><?= $title ?></a> 

我很新的jQuery和JavaScript和希望得到任何幫助我能!

回答

3

您可以將用戶當get請求,通過重定向用戶在success回調像

完成重定向到該網站
$(".link").click(function(event) { 
    event.preventDefault(); 
    var link = $(this); 
    $.get('<?= base_url() ?>ajax/click_out/' + $(this).attr("site_id"),function(){ 
     window.document.location.href = link.href; 

}); 

}); 

看看這裏http://api.jquery.com/jQuery.get/

+2

'= link.href' .. – SLaks

+0

@SLaks:TNX: ).. – Rafay

0

在黑暗中只是一個鏡頭,但你可以嘗試這樣的事情...

$.get("test.php", function(data){ 
    window.document.location.href = $(this).attr("href"); 
});