[英]Script doesn't always fully execute when ajaxed in with jQuery
我有這個子句可以在一定條件下執行腳本;
//if artist page clicked run profile script
if (id == 'artist_link') {
$.getScript("AJAX/get_profile.js");
}
我遇到的問題是腳本通常不會完全執行。 有時,其他時間什么也不會執行,只有部分執行。 我真的無法提供更多細節。 不過,奇怪的是,它總是在打開Firebug時完全執行,並且我找不到任何問題。 我經過測試且都存在此問題的瀏覽器是chrome和firefox
jsfiddle,其中包含get_profile.js
文件。
我可能是錯的,但據我所知, $(location)
是無效的jQuery。 僅用window.location.pathname
替換$(location).attr('pathname')
可以消除可能的錯誤。
還有其他一些一般的事情,它們實際上並不會影響它是否有效,但是值得一提的是提高整體美觀度:
data
是對象,而不是數組。 要訪問顯示圖片的DP
元素,應使用data.DP
而不是data['DP']
(與name
相同,還有其他幾個元素) .click()
已過時,使用.on()
以代替結合事件 $.each (data, function(key, val){
)並且在循環內部,正在修改DOM( $.append()
)-您最好不要建立一個字符串循環期間生成HTML,然后將其添加到循環后的單個追加中,因為DOM插入會降低性能 $('#origin')
),這會使jQuery每次都要查找元素。 緩存它,然后在其上調用方法:
$origin = $('#origin');
$('#origin').html('a').append('b').append('c');
我幾乎100%肯定get_profile.js文件中的某處存在錯誤。 如果它正在執行,那么文件的加載就不會有任何問題。 問題存在於您的js文件中的某個地方,如果不查看其中的代碼,我們就無法真正對其進行調試。
修復! 我不知道為什么我沒看到這個,但是在頁面被取消之前,腳本被取消了,導致腳本無法運行。 無論如何,我已經修復了它。 謝謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.