我正在经历http://docs.jquery.com/How_jQuery_Works并且发现在$(document).ready()
中包含$.click()
事件的要求甚至有点奇怪。我的困难如下:
- 当文档加载时,控件会进入
$(document).ready()
函数,但会继续执行$.click()
吗? (基于它不会的行为。但是当控件进入正常函数时,为什么它不会进入$.click()
函数?) - 由于用户只有在文档准备好后才能看到 url,是否真的需要在
$(document).ready()
中嵌入$.click()
>?
最佳答案
How jQuery Works document使用绑定(bind) .click()
的示例$(document).ready()
里面确定 .click()
所指向的元素函数执行时绑定(bind)的事件已创建。
.click()
使用函数作为其参数调用不会执行 .click()
在与其前面的选择器匹配的节点上,而是将函数绑定(bind)到匹配节点的 onclick
.
如果您尝试做这样的事情:
$('a').click(function(){
alert('clicked me');
});
...在文档中 <head>
或在任何 <a>
之前元素已渲染,事件不会绑定(bind)到任何节点,因为没有节点与 $('a')
匹配。选择器在函数执行时就存在。
此外,如果您在某些 <a>
时这样做了标签已经创建,只有那些已经创建的标签才会获得绑定(bind)事件。 <a>
绑定(bind)函数后创建的标签不会有 .click()
绑定(bind)。
因此,在 jQuery(和其他 JavaScript 框架)中,您经常会看到在 $(document).ready(function(){});
内添加事件处理程序、绑定(bind)小部件等的约定。
关于javascript - 为什么 $.click() 应该包含在 $(document).ready() 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092762/