首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ready()工作,on('ready')不工作,为什么?

ready()工作,on('ready')不工作,为什么?
EN

Stack Overflow用户
提问于 2018-12-06 20:39:19
回答 3查看 893关注 0票数 1

我试图在代码中使用'on‘,但失败了。我尝试的代码是这样的:

代码语言:javascript
复制
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script type="text/javascript">
    function clickHandler(e) {
      alert('Click!');
    }
    $(document).on('ready', function() {
      $('#click_me').on('click', clickHandler);
    })
  </script>
</head>

<body>
  <input id="click_me" type="button" value="click me" />
</body>

</html>

虽然我可以用下面的代码替换这段代码。我仍然想知道为什么我的第一个事件on代码不能工作。

代码语言:javascript
复制
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script type="text/javascript">
    function clickHandler(e) {
      alert('Click!');
    }
    $(document).ready(function() {
      $('#click_me').click(clickHandler);
    })
  </script>
</head>

<body>
  <input id="click_me" type="button" value="click me" />
</body>

</html>

EN

回答 3

Stack Overflow用户

发布于 2018-12-06 20:46:52

on()的文档中,重点是我的:

还有$(document).on("ready", handler),从jQuery 1.8开始不推荐使用,在jQuery 3.0中删除。请注意,如果DOM在附加此事件之前准备就绪,则不会执行处理程序。

票数 6
EN

Stack Overflow用户

发布于 2018-12-06 20:49:24

这是因为ready不是一个事件(既不是jQuery也不是html)。它是jQuery创建的用于确定文档状态的函数。所以不要混淆这两件事。

只有两种方法可以使用就绪状态。通过ready函数,或者通过速记,基本上是相同的:

代码语言:javascript
复制
$(document).ready(function() {
    // ...
});


$(function() {
    // ...
});
票数 1
EN

Stack Overflow用户

发布于 2018-12-06 21:49:02

下面提到的第一个代码是无效的jquery。

代码语言:javascript
复制
$(document).on('ready', function() {

请使用这个,而不是这个。

代码语言:javascript
复制
$(function(){

});
//Or
$(document).ready(function() {

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53651676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档