異步加載頁面,頁面中的js的調用問題


     項目中用到了菜單樹,置於頁面的左端,點擊菜單后異步加載對應菜單的頁面,主框架頁面為index.jsp,其中有$(document).ready(function(){

});jQuery的調用,

<script type="text/javascript">
$(document).ready(function(){
	$("#sideFrame").load("pages/left.jsp",function(data){});
	resizeBody(0,0);
});
window.onresize=function(){
	resizeBody("si","ze");
	resizeBodyY("si","ze");
}
</script>

問題出現在加載的頁面中,如果你也在加載的頁面other.jsp中運用了

$(document).ready(function(){

    123();.........

});

function 123(){
 ...................
}

其中此處123()方法必須要定義在調用處的上方,否則會出現找不到123()方法的問題。

     解釋一下出現此問題的原因:index.jsp頁面中$(document).ready()方法的完成是在index.jsp加載完畢之后就已經執行完畢了的,當你在異步加載進來的頁面中繼續使用這個方法,是不會起效的,也就是說$(document).ready()方法是針對頁面的而不是針對你某個div異步加載的頁面的,所以你在加載頁面other.jsp調用$(document).ready()時,其他的自定義的js方法並不一定起效,也就是說js方法的定義一定要有順序,被調用的方法一定要定義在調用方法的前面,調用方法才會找到被調用的方法,上面的js要應該如下所示:

 
<script type="text/javascript">

function 123(){ ................... }

function 456(){ 123();......... }
</script>

 其中$(document).ready(function(){}已經去掉了,因為已經沒有什么作用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM