【发布时间】: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 示例并将其发布以供人们查看。