2013-04-02 56 views
2

我解決了一個只發生在Mozilla的更新中的問題。我有一個jQuery中的程序,它記錄單擊元素div#區域。點擊運行php腳本,點擊保存在數據庫中。但如果這個div鏈接點擊,儘管php腳本記錄點擊使用$ .get調用,但不啓動。這就是它在Mozilla中的行爲,在任何其他瀏覽器中我都沒有看到過這種行爲。如果你可以看看Firebug調用PHP腳本。OnClick事件 - 在Mozilla的AJAX上運行php腳本

它是安全,優化還是別的標準行爲?或者,這是一個Mozilla的錯誤還是寫得不好?

HTML:

<div id="region"> 
<p>nejaky text</p> 
<a href="http://www.test.cz" target="_blank">click</a> 
</div> 

JAVASCRIPT

$(document).ready(function(){ 
$("#region").click(function(){ 
$.get('/ajax/add_click.php?id=5'); 
}); 
}); 
}); 

我不能在互聯網上找到一個解決方案。謝謝。

回答

1

試圖改變這樣的

<div id="region"> 
    <p>nejaky text</p> 
    <a href="http://www.test.cz" target="_blank">click</a> 
</div> 

和你的jQuery將是

$(document).ready(function(){ 
    $("#region").click(function(e){ 
     e.preventDefault();   //Add preventDefault here 
     window.open($(this + 'a').attr('href')); 
     $.get('/ajax/add_click.php?id=5'); 
    }); 
}); 
+0

我需要調用腳本add_click.php並在Mozilla的新面板中打開網站www.test.cz。如果我添加a.preventDefault(),那麼頁面www.test.cz不會打開。 –

+0

我需要記錄整個區域的點擊次數。不僅在鏈接上。 –

+0

你試過我的編輯.. ?? – Gautam3164

0

你本地文件系統上測試吧?當我在本地嘗試你的代碼時,我看不到任何事情發生,但是在遠程服務器上它確實對我有用。

+0

是的。我測試我的本地主機。點擊區域div#區域後,打開一個新頁面www.test.cz.沒關係。在firebug中,我看到腳本名爲add_click.php,但在Firebug中的時間線上,我看到腳本無法啓動add_click。這是爲什麼? –

+0

它工作的每個瀏覽器,只是不在Mozilla中。它在升級mozilla之後停止了工作。 –

+0

對於本地文件系統,我的意思是你通過例如'file:/// C:/filename.php'訪問文件,但我假設你只是使用'localhost/filename.php。也許一些插件會導致衝突。但是,您是否使用回調函數檢查是否可以從服務器獲取任何數據? – Fab