如何使用AJAX为HTML5和CSS3编程创建初始化函数
许多HTML5和CSS3页面需要初始化函数。
身体onload机制经常用于DOM/JavaScript,以便在文档开始加载时立即进行页面加载。
这是一个早期运行的函数,以设置页面的其余部分。
虽然身体onload做得很好,但传统技术存在几个问题:
它需要更改HTML。 JavaScript代码应完全与HTML分开。我们不必更改HTML以使其与JavaScript合作。
时间仍然不太正确。在将显示整个页面之后,在显示身体onload中指定的代码不会执行。如果在将DOM加载之后但在页面显示之前,则会更好。
如何使用$(document).ready()
jquery对身体替代的替代方案克服了这些缺点。
看看代码,以查看它是如何工作的:
<!DOCTYPE html> <html lang = "en-US"> <head> <title>ready.html</title> <script type = "text/javascript" src = "jquery-1.10.2.min.js"></script> <script type = "text/javascript"> $(document).ready(changeMe); function changeMe(){ $("#output").html("I changed"); } </script> </head> <body> <h1>Using the document.ready mechanism</h1> <div id = "output"> Did this change? </div> </body> </html>
此代码使用jQuery技术进行初始化代码:
身体标签不再具有onload属性。这是jQuery编程的一个共同点。 HTML不再具有与JavaScript的直接链接,因为jQuery允许JavaScript代码将自身添加到网页。
使用$(文档).ready()函数创建初始化函数。此技术告诉浏览器在DOM完成加载时执行函数(使其可以访问表单的所有元素),但在显示页面之前(使表单的任何效果显示给用户瞬间出现)。
$Document从整个文档中发出jQuery对象。可以通过在$()函数中指定文档来将整个文档转换为jQuery对象。请注意,在这种情况下,不使用引号。
指定的函数自动运行。在此特殊情况下,我们希望运行长期()函数,因此我们将其放在Ready()方法的参数中。请注意,这将Changeme引导为变量,因此它没有引号或者括号。
我们可以看到其他几个地方(特别是在事件处理中),其中jQuery期望函数作为参数。
这种函数经常被称为回调函数,因为它在发生某种事件后调用。
我们还会看到回调函数响应键盘事件,鼠标运动和Ajax请求的完成。
document.ready.ready的替代方案
我们有时会看到几个快捷方式,因为它是运行初始化代码的共同点。
你可以缩短
$(document).ready(changeMe);
到以下代码:
$(changeMe);
如果未在函数内定义此代码,并且长期是页面上定义的函数,则jQuery会像Document.ready方法一样自动运行该函数。
我们还可以直接创建匿名函数:
$(document).ready(function(){ $("#output").html("I changed"); });
这(匿名函数)方法是麻烦的,但我们经常使用此技术看到jQuery代码。
我们可以创建一个名为init()的函数,并使用这样的行调用它:
$(init);
这种技术简单易于理解,但我们可能会遇到在Web上检查代码的其他变体。