$( function() {} );和$( function($) {} );和( function($){} )(jquery);的异同

[javascript] view plain copy
  1. $(function(){...});  
的完整写法是:
[javascript] view plain copy
  1. $(docunemt).ready(function(){...});  

意思是在DOM加载完毕后执行ready()方法。
[javascript] view plain copy
  1. (function($){...})(jQuery);  

等同于下面的写法:
[javascript] view plain copy
  1. var fun = function(params){....};  
  2. fun(jQuery);  

是立即执行匿名函数fun,这里参数是jQuery。这个写法主要目的是保证jQuery不与其他类库或变量有冲突。

(function($){....})(jQuery);

在定义后就立刻执行, 在执行顺序上可能要先于

$(function(){});

其他的没啥区别 。

一个需要dom对象

一个不需要dom对象



$( function($) {} );

这个就是把jqueey对象给传进函数里面,据说是可以加快函数的速度。就算不传进去,他也会自动的在外层寻找合适的$jquery来执行jquery函数的。

这个倒不是重点。

重点就是那个《自调用匿名函数》的理解啦。



还有更复杂的,这个就是涉及到插件编程,你之所以会问这个问题,搞不好,现在正在看的代码就是公司自己写的jquery插件。

作为插件,所以要在运行之初就要运行。所以才会酱紫。

复杂样式如下:

(function($, window, document,undefined){})(jQuery, window, document);

这个也是类似的,只是多传了几个参数进去。具体这个是为什么呢

想了解的话,

真心有时间想深入的话,可以看下面的链接。

讲的就是jquey插件的编写,写的还是灰常的好的。

我是在这个博客的时候,又回来把本文修改的。

看完之后,你对js的理解应该又会加深不少。

链接:

http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html

function?

05-20

[code=JScript]//类Lecture的构造器rn//使用两个字符串参数,name和teacherrnfunction Lecture( name, teacher ) rn //把它们作为对象的本地属性保存rn this.name = name;rn this.teacher = teacher;rnrn//类Lecture的方法,生成一个显示该课程信息的字符串rnLecture.prototype.display = function()rn return this.teacher + " is teaching " + this.name;rn;rn//类Schedule的构造器rn//使用一个lectures类型的数组作为参数rnfunction Schedule( lectures ) rn this.lectures = lectures;rnrn//类Schedule的方法,用来构造一个描述该课程表的字符串rnSchedule.prototype.display = function()rn var str = "";rn //遍历每门课程,累加构成信息字符串rn for ( var i = 0; i < this.lectures.length; i++ )rn str += this.lectures[i].display() + " ";rn return str;rn;rnvar mySchedule = new Schedule([rn //创建一个课程对象的数组,rn //作为传给课表(原文此处为Lecture,疑为笔误)对象的唯一参数rn new Lecture( "Gym", "Mr. Smith" ),rn new Lecture( "Math", "Mrs. Jones" ),rn new Lecture( "English", "TBD" )rn]);rn// 弹出对话框显示课表的信息rnalert( mySchedule.display() );[/code]rn有点看不明白 :[rn //创建一个课程对象的数组,rn //作为传给课表(原文此处为Lecture,疑为笔误)对象的唯一参数rn new Lecture( "Gym", "Mr. Smith" ),rn new Lecture( "Math", "Mrs. Jones" ),rn new Lecture( "English", "TBD" )rn];这数组吗?我到网上没找有这种声明方式!这是什么意思rn

jquery 怎么function中调用另一个function

01-05

[code=javascript]rn //表示表单项目是否通过验证rnvar flag = "email":false,"nickname":false,"password1":false,"password2":false,"number":false;rn rn $(function()rn//Email检查rn window.funs = $("#txtEmail").blur(function()rn var email = $(this).val();rn //检查是否为空rn if(email == "")rn $("#email\\.info").html("Email地址不能为空");rn return;rn rn //检查格式rn var pattern=/\b(^['_A-Za-z0-9-]+(\.['_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\.[A-Za-z0-9-]+)*((\.[A-Za-z0-9]2,)|(\.[A-Za-z0-9]2,\.[A-Za-z0-9]2,))$)\b/;rn if(!pattern.test(email))rn $("#email\\.info").html("Email格式不正确");rn return;rn rn //检查唯一性rn $.post(rn "/dang/user/checkemail.action",rn "email":email,rn function(data)//服务器返回的ok值rn if(data)rn $("#email\\.info").html("Email正确可用");rn flag.email = true;//email项通过检查rn elsern $("#email\\.info").html("Email已被占用");rn rn ,"json"rn );rn );rn//昵称检查rn $("#txtNickName").blur(function()rn flag.ncikname=false;//设置未通过检查rn var nickname=$(this).val();rn //检查是非空rn if(nickname =="")rn $("#name\\.info").html("昵称不能为空");rn return;rn rn //检查格式rn var len = 0;rn chgex = /[\u4e00-\u9fa5]/;rn engex = /[a-zA-Z0-9]/;rn for ( var i = 0; i < nickname.length; i++) rn if (chgex.test(nickname[i])) rn len += 2;rn else if (engex.test(nickname[i])) rn len += 1;rn else rn $("#name\\.info").html("你输入名字含非法字符 ");rn return;rn rn rn if (len < 4) rn $("#name\\.info").html("你输入的呢称太短!");rn return;rn rn if (len > 20) rn $("#name\\.info").html("你输入的呢称太长");rn return;rn rn //检查唯一性rn $.post("/dang/user/nickname.action", rn "nickname" : nickname,rn function(data)//服务器返回的ok值rn if(data)rn $("#name\\.info").html("呢称输入正确");rn flag.nickname=true; //昵称通过检查rn return;rn elsern $("#name\\.info").html("呢称已被占用");rn return;rn rn rn ,"json"rn );rn );rn//密码1检查rn $("#txtPassword").blur(function()rn var password =$(this).val();rn //非空检查rn if(password == "")rn $("#password\\.info").html("密码不能为空");rn return;rn rn //格式检查rn var pattern=/^[a-zA-Z]\w5,17$/ ; rn // 验证用户密码:"^[a-zA-Z]\w5,17$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。rn if(!pattern.test(password))rn $("#password\\.info").html("密码格式不正确");rn return;rn rn $("#password\\.info").html("密码输入正确");rn flag.password1 = true;rn );rn//密码2检查 rn $("#txtRepeatPass").blur(function()rn var password =$(this).val();rn //非空检查rn if(password == "")rn $("#password1\\.info").html("密码不能为空");rn return;rn rn var ps= $("#txtPassword").val();rn if(password != ps)rn $("#password1\\.info").html("两次密码输入不一致");rn return;rn rn $("#password1\\.info").html("密码输入正确");rn flag.password2 = true;rn );rn//验证码检查rn //生成验证码rn $("#refresh").click(function() rn var rom = new Date(); rn $("#imgVcode").attr("src", "getRandomNumber?timestamp="+rom); rn ); rn //验证码检查rn $("#txtVerifyCode").blur(function()rn var number = $(this).val();rn //非空rn if(number == "")rn $("#number\\.info").html("请输入验证码");rn return;rn rn //格式验证 rn if(number.length<4)rn $("#number\\.info").html("请输入完整验证码");rn return;rn rn //验证码验证rn $.post("/dang/user/checkNumberAction.action", rn "number" : number,rn function(data)//服务器返回的ok值rn if(data)rn $("#number\\.info").html("验证码正确");rn flag.number=true;rn return;rn elsern $("#number\\.info").html("验证码错误");rn return;rn rn rn ,"json"rn );rn $("#number\\.info").html("");rn );rnrn //判断是否允许提交表单rn $("#f").submit(function()rn++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++rnrn我想在这里回调上面的blur函数,怎么调用哦rnrn++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++rnrn /* $("#txtEmail").blur();rn $("#txtNickName").blur();rn $("#txtPassword").blur();rn $("#txtRepeatPass").blur();rn $("#txtVerifyCode").blur();*/rn alert(flag.email+" "+"email");rn alert(flag.nickname+" "+"nickname");rn alert(flag.password1+" "+"password1");rn alert(flag.password2+" "+"password2");rn alert(flag.number+" "+"number");rn var ok = flag.email && flag.nickname &&rn flag.password1 && flag.password2 && flag.number;rn if(ok==false)rn $("#txtEmail").blur();rn $("#txtNickName").blur();rn $("#txtPassword").blur();rn $("#txtRepeatPass").blur();rn $("#txtVerifyCode").blur();rn alert("表单项正在检测或存在错误");rn return false;rn rn //验证码验证rn return true;rn );rn );rnrn[/code]

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试