javascript - 如果选择器是从外部加载的,如何触发点击事件

标签 javascript jquery

有没有人有类似的经历?我想使用 .load("...") 函数将外部文件加载到当前页面。加载后,如何触发点击

中的图片?

脚本

$("#tab-3-list img.coupon_list").on("click", function (e) {}

不起作用。如果我将 list.html 的内容嵌入到当前正文中,上面的脚本就可以运行。

<html lang="en" class="ui-mobile">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">

</head>
<section id="home" data-role="page">
    <article data-role="content">
        <div id="home-content"></div>
    </article>
    <!-- content -->
</section>
<!-- home -->

<script type="text/javascript">
    $(document).ready(function() {
        $("#home-content").load("list.html");
        $("#tab-3-list img.coupon_list").on("click", function (e) {
            e.preventDefault();
            window.alert(this.id);
        });
    });
</script>
</body>
</html>

外部文件list.html

    <div id="tab-3-list">
        <div class="ui-grid-a">
            <div class="ui-block-a">
                <img id="c01" class="coupon_list" src="/images/coupon/c01.png">
            </div>
        </div>
        <!-- /ui-grid-a -->
    </div>
    <!-- /tab-3-list -->

最佳答案

尝试使用event-delegation在此上下文中,因为您是在运行时加载 DOM 元素,

$("#home-content").on("click","#tab-3-list img.coupon_list",function (e) {
  e.preventDefault();
  alert(this.id);
});

关于javascript - 如果选择器是从外部加载的,如何触发点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220103/

相关文章:

javascript - 如何在仅使用 Jquery 加载页面之前隐藏 div

jquery - runat ="server"破坏了我的 jquery/css 功能

javascript - jQuery-UI 模态叠加

javascript - 在选项选择 CSHTML 上显示/隐藏类

javascript - 围绕 Canvas 边缘移动的圆圈

javascript - 在函数中的何处放置回调

javascript - 以这种方式覆盖 React 状态数组好吗?

javascript - 如果用户不确认,则撤消模糊时的文本更改

javascript - 简单的 Javascript slider

javascript - 使用数据库的结果作为 jquery 中的变量