2013-08-18 65 views
-1

使用ajax動態加載我的內容。我需要加載一個JavaScript文件後,我點擊一個按鈕:jQuery.getScript在DOM之前加載JavaScript文件

<a id="element" href="http://example.com/test">button</a> 

但下面的腳本在加載DOM之前加載JavaScript文件。 我該如何解決這個問題?

$("#element").click(function() { 
    jQuery.getScript("example.com/jsfile.js?ver=0.9"); 
}); 

截圖螢火蟲的:http://img607.imageshack.us/img607/1630/4mu7.png

第1行的JavaScript文件,該文件通過上述功能和第3行稱爲加載的是真實加載的頁面。

+0

你是否在加載dom之前單擊按鈕? – Musa

+0

是的,你如何在DOM準備好之前觸發這個函數? – Jon

+0

當你點擊'a#元素'時,它會轉到另一個頁面'http:// example.com/test'。 –

回答

0

工作JSBin - http://jsbin.com/uJUBAru/1/edit

jQuery的方法使用的document.ready()

$(document).ready(function(){ 
    $("#element").click(function() { 
    $.getScript("example.com/jsfile.js?ver=0.9").done(function(script, textStatus) { 
     console.log(textStatus); 
    }) 
    .fail(function(jqxhr, settings, exception) { 
     console.log('error'); 
    }); 
    }); 
}); 
+0

該按鈕通過ajax將「example.com/test」的div內容加載到主頁「example.com」的maincontent div。然而,Firebug的網絡面板在瀑布圖中報告,在頁面「http://example.com/test」加載之前,JavaScript正在被加載。 – Eric

+0

@Eric:看看我的jsbin http://jsbin.com/uJUBAru/1/edit ..這可能會給你一些線索 – Amith

+0

Thaks Amith,但問題僅僅是JavaScript在DOM之前加載(example.com /測試)。 請在我的問題中看到上面的截圖 – Eric

0

我已經設置了超時F或功能。現在加載頁面,5秒後JavaScript加載。 雖然這是一個解決方案,但它不是很安全。

其他建議?

$("#element").click(function() 
{setTimeout(function(){ 
    jQuery.getScript("example.com/jsfile.js?ver=0.9"); 
}, 5000); 

});