jquery局部变量和全局变量的错误

Posted klory

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery局部变量和全局变量的错误相关的知识,希望对你有一定的参考价值。

自定义函数中的局部变量每次触发时加载一次

$("#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局部变量和全局变量的错误的主要内容,如果未能解决你的问题,请参考以下文章

全局变量和局部变量的区别

全局变量名局部变量名和形参名冲突时,覆盖情况

浅谈js全局变量和局部变量

lua脚本有静态局部变量吗

JS全局变量是全局对象的属性,函数局部变量为啥就不是函数的属性呢?

js中局部变量和全局变量的问题