項目中用到了菜單樹,置於頁面的左端,點擊菜單后異步加載對應菜單的頁面,主框架頁面為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(){}已經去掉了,因為已經沒有什么作用。

