2014-11-05 43 views
0

所以我有一個菜單欄和內容區域的簡單網站。當我單擊菜單欄中的一個按鈕時,它應該在內容區域的圖形元素上執行快速淡入轉換,並將外部內容加載到div中。.load在Internet Explorer中導致整個頁面刷新?

$("#button1").click(function(){ 
$(".contentdivs").fadeIn(1000); 
$(".content").load("external.html"); 
}); 

這個工程完全按照預期在Chrome,Safari和Firefox,但不是在IE瀏覽器。

在資源管理器中,單擊#button1將觸發.Fadein和.load(我可以看到轉換和外部數據非常簡單地呈現),但整個頁面刷新,外部內容被卸載。

任何想法爲什麼發生這種情況,以及如何解決它?

+0

Something * else *正在導致頁面重新加載。可能是正在執行的「external.html」中的腳本。請參閱http://api.jquery.com/load/ – user2864740 2014-11-05 00:07:19

+0

大多數情況下,代碼中的某些內容會失敗,導致點擊處理程序失敗,從而導致IE執行按鈕的默認行爲 - 即提交其包含的表單,從而導致重新加載。檢查JS錯誤。 – 2014-11-05 00:09:54

+0

考慮製作一個這個問題的小回放。這將使我們能夠更好地協助您調試行爲。 – Sampson 2014-11-05 00:11:03

回答

1

按鈕是否爲定位標記?您可能需要防止點擊事件的默認操作,並在發生錨點父按鈕時停止冒泡事件:

$("#button1").click(function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    $(".contentdivs").fadeIn(1000); 
    $(".content").load("external.html"); 
}); 
+0

謝謝,這個伎倆! 爲了將來的參考和我自己的啓發,這是一個Internet Explorer太挑剔的案例,或其他瀏覽器的情況是寬容的? – 2014-11-05 18:33:51

+0

太棒了!很高興我能幫上忙, – PeterKA 2014-11-05 18:35:16