微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正确使用jquery $(document).ready()在声明在ready()中调用的函数时

我已经习惯于使用ready函数$(function(){…})开始jquery编码;并将准备好的所有调用功能准备就绪。

然后我意识到有些功能放在ready功能中可能不需要在那里。

例如,文档就绪中的事件使用的简单函数可以在其外部声明:

function checkEmail(objelement){
   var emailRx = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
   return emailRx.test(objelement.val()) ? true : false;
}

然后在里面使用它:

//code snippet for example

$(function(){

$("form[name='contactform']").submit(function(){
    $("input[type=text]").each(function(){
        if($(this).attr("id") == "email" && !checkEmail($(this))) { 
            $(this).prev().css("color","red");
       }
    });
});

});

搜索了很多以前的问题,似乎找不到答案。

是否更好,更糟,或没有什么不同,以这种方式宣布职能以外的准备?

解决方法

如果你将它们声明在外面,那就意味着它们存在于全局范围内。

这样做的优点是它们可以在document.ready函数之外重用。缺点是它们混淆了全局命名空间(如果需要,可以通过命名空间来避免)。

就个人来说,如果我要重新使用它们,他们就出去了。如果他们需要引用一个变量或其他只存在于我的domready处理程序范围内的东西,那么它们就会进入(通常作为匿名函数)。

最近,我已经把我可以在domready处理程序之外的所有东西,只因为解释器必须在开始执行处理程序之前解析domready处理程序中的所有函数声明,并延迟执行domready处理程序排序目的(不管时间是多少可以忽略)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jQuery表单验证提交:前台验证一(图文+视频)
jQuery表单验证提交:前台验证二(图文+视频)
jQuery如何实时监听获取input输入框的值
JQuery怎么判断元素是否存在
jQuery如何实现定时重定向
jquery如何获取复选框选中的值
jQuery如何清空form表单数据
jQuery怎么删除元素节点
JQuery怎么循环输出数组元素
jquery怎么实现点击刷新当前页面