【问题标题】:Jquery how to bind click event on dynamically created elements?Jquery如何在动态创建的元素上绑定点击事件?
【发布时间】:2013-07-07 15:31:00
【问题描述】:

我尝试了下面的代码,但它不起作用

<script type="text/javascript">
    $(document).ready(function () {
        $('body').on('click', '.pg_previous,.pg_next', function () {
            jQuery("img.lazy").lazy({});
            alert('ddsda');
        });
    });
</script>

jQuery 1.9.1

【问题讨论】:

  • 这个小提琴在没有lazy 调用的情况下工作,也许看看那里,或者在lazy 调用之前移动警报。 jsfiddle.net/5SyS3
  • @JasonP 这是取消活动 :( "return false;"
  • 尝试用e.preventDefault()替换return false;
  • +1 使用 body 作为选择器而不是类选择器(用于动态创建的元素)
  • 这里有一篇详细介绍如何为动态元素绑定点击事件goo.gl/zlEbnv

标签: jquery events dynamic bind


【解决方案1】:

在这里试试这个:

<script type="text/javascript">
$(function(){
    $('body').on('click', '.pg_previous,.pg_next', function () {
        jQuery("img.lazy").lazy({});
        alert('ddsda');
    });
});
</script>

【讨论】:

  • 这是为我做的!谢谢!将点击事件附加到父元素并选择其子元素是最有效的方法。
  • 两者是等价的,但是对于这个特定版本的 jQuery,我经常发现长版本不起作用,而快捷方式可以。
【解决方案2】:

您忘记了 DOM ready 处理程序

将您的代码封装在就绪处理程序中,除非您在我们的控制台中显示任何错误,否则应该可以正常工作。

$(function() {
    // Your code here
});

【讨论】:

  • 好的,我相信另一个代码取消了默认操作,所以它也取消了绑定操作,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2022-11-22
相关资源
最近更新 更多