我正在尝试理解我下载的一些JavaScript / jQuery代码:
<script type="text/javascript">
var messageDelay = 2000; // How long to display status messages (in milliseconds)
// Init the form once the document is ready
$( init );
// Initialize the form
function init() {
$('#contactForm').hide() // Hide the form initially
.submit( submitForm ) // on submit run submitForm() to check the inputs
.addClass( 'positioned' ); // position the form so it sits in the centre of the browser window.
// do more stuff
}
</script>
$(init);线是问题。它似乎是指从下面开始定义的init()函数,但它如何调用init()?之前的注释行表示我们在DOM准备就绪时调用init(),但是没有标准的“$(function(){”等待DOM。
有谁知道这里发生了什么?
由于
答案 0 :(得分:2)
如果您传递$(init)
中的函数,则表示您希望在文档准备好时调用该函数。这是一个简写符号:
$(document).ready(init);
此处的相关jQuery文档显示了此表单:http://api.jquery.com/jQuery/#jQuery3
我个人发现$(document).ready(init);
为更易读的代码提供更多代码,这就是我使用的代码。
答案 1 :(得分:2)
与写作相同:
$(function(){
init();
});
或者
$(document).ready(function(){
init();
});
而不是使用匿名函数,他们只是将函数名称传递给调用....简短回答init()
将不会触发,直到jQuery ready事件
答案 2 :(得分:0)
编写$(init)与使用匿名函数相同:$(function(){
两者都将函数传递到文档就绪