我正在通过
http://docs.jquery.com/How_jQuery_Works,找到在$(document).ready()中附加$.click()事件的要求甚至有点奇怪.我的困难如下:
>当文档加载时,控件将输入$(document).ready()函数,但会继续执行$.click()? (基于行为不会,但是当控件进入正常的函数时,为什么不输入$.click()函数?)
>由于用户只有在文档准备好后才能看到URL,是否真的需要在$(document).ready()中嵌入$.click().
解决方法
How jQuery Works document使用绑定$(document).ready()内的.click()的示例来确定在执行函数时已经创建了.click()事件绑定的元素.
以函数作为参数调用的.click()不会在匹配其前一个选择器的节点上执行.click(),而是将该函数绑定到匹配节点的onclick上.
如果你试图做这样的事情:
$('a').click(function(){ alert('clicked me'); });
…在文件< head>或在任何< a>元素已被渲染,事件不会被绑定到任何节点,因为在执行函数时没有匹配$(‘a’)选择符的节点.
此外,如果您在某些< a>标签已创建,只有已经创建的标签才能获得绑定的事件. < a取代;在函数绑定后创建的标签将不具有.click()绑定.
因此,在jQuery(和其他JavaScript框架)中,您经常会看到在$(document).ready(function(){})内添加事件处理程序,绑定小部件等的约定;