【发布时间】:2012-11-29 15:05:39
【问题描述】:
看看这个例子:http://jsfiddle.net/9NXHq/15/
它从一个通过 HTML 定义的按钮开始。然后我使用 jQuery 克隆该按钮,更改文本,并将其添加到原始按钮之后。注意到新按钮的显示是如何混乱的吗?但是,当您单击导致图标更改的按钮时,它会自行清理!克隆已经查询过的元素的正确方法是什么?
例如,想象一个数据列表和一个“添加”按钮。单击添加克隆一整行数据(例如,来自隐藏的模板行),其中包括 jQueried 元素,例如按钮、自动完成等。如何“重组”这个新行中的元素以确保它们正常工作?
HTML
<a id="btn">This is a button.</a>
CSS
/* Standard jQuery UI (1.8.16 in this case). */
JavaScript
/* Standard jQuery (1.7.1 in this case). */
var btn = $("a#btn");
var btn2 = null;
btn.button({ icons: { primary: "ui-icon-plus" } });
btn.click(function ()
{
$(this).button({ label: "Clicked!", icons: { primary: "ui-icon-check" } });
});
btn2 = btn.clone();
btn2.click(function ()
{
$(this).button({ label: "Clicked! (2)", icons: { primary: "ui-icon-check" } });
});
btn2.text(btn2.text() + " (2)");
btn2.insertAfter(btn);
//Need to re-constitue btn2 as a button.
btn2.button();
【问题讨论】:
-
在我看来它并没有乱七八糟(Safari 6)。你用的是什么浏览器?
-
在 Chrome 上看起来不错(OSX 上的 v23)
-
在 Opera 中也可以使用。顺便说一句,通过克隆该按钮,您创建了具有相同 id 的第二个元素,这不应该发生。
-
嗯,使用 clone(true) 真的很奇怪
-
确认 OP 的小提琴有问题 - 上面没有图标
标签: javascript jquery html jquery-ui