【问题标题】:Dynamic Element not responding to .Live() function动态元素不响应 .Live() 函数
【发布时间】:2012-04-17 00:17:55
【问题描述】:

我有一个生成元素列表的脚本;跨越。我有脚本可以在 DOM 层次结构中移动它们,以使用 .appendTo() 来定位 div 等。以下脚本不适用于新移动的对象,即使我使用的是 .live()。

    var User = 0;
    $(".List span").live('dblclick', function(e){
        e.stopPropagation();
        User = $(this).attr('class').match(/Usr1/g) ? 1
             : $(this).attr('class').match(/Usr2/g) ? 2
             : null;
        $(this).prependTo("#List_" + User); 
    });

澄清一下:我点击一个跨度;它移动到.List。我 dblclick .List 中的跨度;什么都没发生。它应该移动到#List_*。如果我对它们进行 dblclick,则 .List 中的跨度确实会移动。

为什么新来的人不动?

【问题讨论】:

  • 仅供参考,.live() 已被弃用,取而代之的是 .delegate().on(),具体取决于您的 jQuery 版本。问题是 span 从未从 .List 中删除,从未添加到 #List_,还是两者兼而有之?
  • 最后,您是否仔细检查了跨度到达 .List 是否与您期望的一样(即,没有包裹在 div 或类似的东西中)?
  • 我建议您使用良好的浏览器内调试器单步调试您的代码(专业提示:chrome、safari 和(最新版本的)firefox 和 opera 都附带了令人惊叹的调试工具)。除此之外,创建一个 jsfiddle 的 js + html 示例并将其发布以供人们查看。

标签: jquery bind live


【解决方案1】:

我重新编写了问题脚本,现在一切正常。感谢您让我知道 .on(),我会调查一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多