【问题标题】:Problems with using live in jQuery - Uncaught RangeError: Maximum call stack size exceeded在 jQuery 中使用 live 的问题 - Uncaught RangeError: Maximum call stack size exceeded
【发布时间】:2012-09-20 17:35:50
【问题描述】:

我有一个div 动态填充paragraph tags(它们最初不存在)。我希望每个新动态添加的<p> 在被点击时执行某些操作——即附加一个点击事件。

我知道如何做到这一点的唯一方法是使用livedelegate

$('div.fromSelected p').live('click', function () {
    $("&ltp>" + $(this).text().substr(3) + '&lt/p>').appendTo('.fromOptionList');
    //$(this).parent().remove();
    $("#auto_box").getNiceScroll().resize();
    $(this).remove();
    $("#auto_box2").getNiceScroll().resize();
});

但是在对动态添加的段落调用 click 事件一段时间后,我收到以下错误:

未捕获的 RangeError:超出最大调用堆栈大小

什么可以规避这个问题?

【问题讨论】:

  • 你用的是什么版本的jQuery?
  • 这是正确的,还是格式问题? &ltp>
  • 如果您知道如何使用delegate,为什么还要使用live?由于您使用的是 1.7.2,因此值得使用 .on 代替
  • 到底有多少 'div.fromSelected' 元素?

标签: jquery


【解决方案1】:

尝试改用.on

$("div.fromSelected").on('click', 'p', function () {...

【讨论】:

  • @imparator 你能发布你的 html 或设置一个 jsfiddle.net 来展示问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多