javascript - 为什么 $.click() 应该包含在 $(document).ready() 中?

标签 javascript jquery

我正在经历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/

相关文章:

javascript - 适用于 IE8 的子像素舍入 JavaScript/jQuery 解决方案,适用于具有百分比宽度的表格单元格

javascript - 单击按钮时如何滚动到顶部?

jquery - 将 JSON 作为字符串发布

javascript - $.query.get ('code' ) 是什么意思?

javascript - rhandsontable 如何限制最大。行数

javascript - 转换矩阵值后,如何从 style.transform 旋转获得正确的度数?

javascript - 用于更改文本框值的 html 链接

javascript - 单击按钮时获取用户的当前位置

javascript - Chrome API 不会在嵌套回调中注入(inject) cookie

jquery - JS 和维基百科 API : Retrieving an article's introduction?