gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:57:55 25 4
gpt4 key购买 nike

我已经养成了从ready函数开始jquery编码的习惯 $(function(){...}); 并将所有从ready调用的函数放入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");
}
});
});

});

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

以这种方式在ready之外声明函数是更好、更坏还是没有什么不同?

最佳答案

如果在外部声明它们,则意味着它们存在于全局范围内。

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

就我个人而言,如果我要重复使用它们,它们就会出去。如果它们需要引用仅存在于我的 domready 处理程序范围内的变量或其他内容,它们会进入内部(尽管通常作为匿名函数)。

最近,我把所有能做的都放在 domready 处理程序之外,因为解释器必须在开始执行处理程序之前解析 domready 处理程序中的所有函数声明,而延迟 domready 处理程序的执行有点违背了目的(无论这个时间是多么微不足道)。

关于jquery - 在声明 ready() 中调用的函数时正确使用 jquery $(document).ready(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6861178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com