javascript - jQuery Click 的问题

标签 javascript jquery html

我在使用 jQuery 时遇到了一些麻烦,我真的不知道我做错了什么。

我有一个包含静态内容和几个按钮的简单页面。当我想将点击事件附加到我的其中一个按钮时,我的问题就来了 - 它根本行不通!

这是我在 html 中的代码:

<head>
    <link rel="stylesheet" href="css/main.css" type="text/css">
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
    <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/my.js"></script>
</head>

<body>
    ....
    <button class="btn btn-success" id="my-button">BUTTON</button>
</body>

这是我在 my.js 中的代码:

$('#my-button').click(function()
{
    console.log("Button Clicked");
});

无论我点击按钮多少次,无论我使用哪个浏览器,消息都不会进入控制台。我只是不明白,我以前没有遇到过这样的问题...我希望这不是一个明显的错误。

我还应该指出,当我将其更改为 $(document).ready 时,它工作正常!!

帮助:(

最佳答案

你自己说的,将其包装在文档就绪的回调中将解决问题。

原因是您的 JavaScript 在元素实际进入 DOM 之前运行,因此在运行 JavaScript 时,没有元素匹配您的选择器,因此无法附加 clickevent-listener。

如果您出于某种原因不想使用 DOM 就绪回调,另一种解决方案是在您执行的最后一件事中包含您的 JavaScript,就在您关闭 body 元素之前。当浏览器到达那个点时,您的元素应该在 DOM 中,因此您的代码应该没问题。

解决方案一:WAITING DOM 就绪

$(function () {
   $('#my-button').click(function() {
     console.log("Button Clicked");
   });
});

解决方案 2:最后加载 JavaScript

<head>
    <link rel="stylesheet" href="css/main.css" type="text/css">
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
    <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
</head>

<body>
    ....
    <button class="btn btn-success" id="my-button">BUTTON</button>
    <script type="text/javascript" src="js/my.js"></script>
</body>

关于javascript - jQuery Click 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185309/

相关文章:

javascript - 在 Grails 项目中使用 EmberJS 和布局

jquery - 按钮的定位不起作用

jquery - 即使在网站刷新后如何检查跨度是否有值(value)

javascript - promise : How to pass data?

javascript - 链接在鼠标悬停时出现的 div 元素内不起作用

javascript - 使用 JS 库生成图表

jQuery 获取 id 以任意常量结尾的元素

html - 使用 flex 将 div 移向右侧

javascript - 想要生成带有猫头鹰图像的轮播

javascript - 如何将YouTube视频嵌入到自定义播放列表中,并使它们循环播放?