1. 程式人生 > >jquery局部變量和全局變量的錯誤

jquery局部變量和全局變量的錯誤

rtp 變量名 dom param 讀取 show klist function _id

自定義函數中的局部變量每次觸發時加載一次

$("#pageSize").on("change",function(){
		//變量名必須放在事件方法內部,不然變量只會在加載時讀取一次!!!
			var startPage = $("#startPage").val()
			var pageSize = $("#pageSize").val()
			var bookID = $("#bookID").val()
			var bookName = $("#bookName").val()
			var ftype_id = $("#Ftype").val()
			var stype_id = $("#Stype").val()
			var params = {"doWhat":"queryBookListByParams","startPage":startPage,"pageSize":pageSize,
					"bookID":bookID,"bookName":bookName,"ftype_id":ftype_id,"stype_id":stype_id,};
				showbooklist(params); 
		}) 

這些局部變量只在加載是讀取一次。

	$(function() {
		var startPage = $("#startPage").val()
		var pageSize = $("#pageSize").val()
		var bookID = $("#bookID").val()
		var bookName = $("#bookName").val()
		var ftype_id = $("#Ftype").val()
		var stype_id = $("#Stype").val()
	})

$(function(){ }是$(document).ready(function()的簡寫,相當於window.onload = function(){ } ,

window.onload是在頁面所有的元素都加載完成後才觸發
$(function(){})是在頁面的dom結構加載完畢後就觸發 dom裏的內容不一定都已經加載完成
比如說一個頁面有好多圖片 而加載這些圖片需要一定的時間
window.onload必須得等到全部的圖片都加載完成後才能觸發
而$(function(){})只要在dom加載完畢之後就會執行 圖片不一定已經加載完成

二者的區別

1:執行時機不一樣
$(function() { } )是在dom結構創建完成以後就執行,window.onload是在整個頁面加載完成之後(包括頁面上的資源,比如圖片)才執行
2:執行次數不一樣:
$(function() { } )不管你jsp引入的js裏定義了幾個,會按照順序依次執行,而window.onload只會執行最後一個,之前的會被覆蓋掉

jquery局部變量和全局變量的錯誤