最近搗鼓JQuery,其中強大的Ajax系列函數使人印象深入,因此作項目時堅決果斷地採用了一下該技術,在主頁中動態加載分頁面進來,咋看效果 不錯,都能實現了第一層次的加載,但深刻下去問題就出來了:動態加載進來的頁面中外聯了js文件,其中的腳本卻沒有在加載後運行! (腳本在單獨瀏覽該分頁面時運行是正常的)javascript
我鬱悶了,打開Firefox中的Firebug查看了加載後的主頁面中的DOM,全部元素的加載都是正常的啊~css
本身改來改去一個個參數試都過了,在網上也找了半天,都沒能解決問題。後來一想,咱把外聯的js文件的腳本改爲內聯試試,一試,Ok了!加載進來的分頁面終於能正常執行JQuery的函數!html
還有,主頁面加載了JQuery庫就能夠了,分頁面是不須要加載庫的,由於分頁面是集成到主頁面的DOM中的,將和主頁面共享同一個庫腳本。java
貼一貼代碼,讓你們看得明白點:jquery
問題解決前:app
(分頁面)函數
<html>
<head>
<title>AccountPage</title>
<link href="../Global.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../js/jquery.min.js"></script> <!--JQuery庫,你懂的-->
<script type="text/javascript" src="../js/Global.js"></script> <!--外聯的js文件-->
</head>
<body>
<div id="accountPage">
<a id="modify">修改</a>
</div>
</body>
</html>spa
(分頁面外聯的js腳本).net
$(document).ready(function () {component
$("#modify").click(function(){
alert("This is alerted from AccountPage !"); //分頁面加載進主頁後,這段代碼並
$("#accountPage").append("<a href='#' >GooodWork</a>"); // 沒有定期望運行
});
});
(主頁的Ajax加載腳本)
$(document).ready(function () {
$("#account").click(function () {
$("#detail").load('component/accountPage.html'); })
});
解決後(只改了分頁面):
(分頁面)
<html>
<head>
<title>AccountPage</title>
<link href="../Global.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
{
$("#modify").click(function(){
alert("This is alerted from AccountPage !");
$("#accountPage").append("<a href='#' >GooodWork</a>");
});
}
</script>
</head>
<body>
<div id="accountPage">
<a id="modify">修改</a>
</div>
</body>
</html>
其實有點囉嗦了,一句話:要在Ajax加載進來的分頁面運行的腳本,不能外聯,必須內聯!
Only you~can take me 取西經~~~