javascript - JQuery 在粘贴到控制台时有效,但在页面加载时无效

标签 javascript jquery

为什么这在页面加载时不起作用,但当我将 jquery 粘贴到页面上的控制台时它起作用。

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Alex Cory</title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css">
  </head>
  <body id="page-top" data-spy="scroll" data-target=".navbar-custom">
    <div id="root"></div>
    <script src="src/app.js"></script>
    <script src="//code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script>
      $(document).ready(function(){
        $('.page-scroll a').bind('click', function(event) {
          console.log('CLICKED BUTTON! ^_^');
          event.preventDefault();
        });
      });
    </script>
  </body>
</html>

最佳答案

根据您的网页设置方式判断,我怀疑您将内容注入(inject)到页面中的位置为:

<script src="src/app.js"></script>

因为代码本身没有实际内容。

在这种情况下,这是因为当页面加载并且 $(document).ready() 触发时,$('.page-scroll a')返回 null 因为它还没有渲染到 DOM 中,简单地说。

要解决此问题,您需要将事件处理程序附加到加载时将呈现到页面中的元素。 body 标签非常适合此示例,我们希望使用 jQuery's on 监听 .page-scroll a 的点击。方法:

// We attach a click event listener to the body element
// and we try to track when .page-scroll a is clicked 
$('body').on('click', '.page-scroll a' function(event) {
  console.log('CLICKED BUTTON! ^_^');
  event.preventDefault();
});

这是有效的,因为由于事件处理程序附加到正文,每次在网页上单击某些内容时,它都会检查 .page-scroll a 是否被单击,而不是在您之前单击试图将事件处理程序附加到尚不存在的元素。

关于javascript - JQuery 在粘贴到控制台时有效,但在页面加载时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946544/

相关文章:

javascript - 如何使用 EmberData 创建非持久模型?

javascript - 将单选按钮输入添加到文本框输入并将其存储在列表中?

javascript - 如何创建自定义文本 - React Native

javascript - OOP Javascript - "get property"方法是否必要?

javascript - 选择带有视频缩略图的框

javascript - 使用下划线从 JSON obj 收集数据以创建位置数组

javascript - jquery click() 和 on() 不工作

JQuery悬停多个元素一个功能

javascript - jquery ajax 调用按钮单击验证不起作用

javascript - 是否有用于类似 stackoverflow 的投票的 Ajax(原型(prototype)或 JQuery 插件)示例?