我正在编写一个小的jQuery插件来允许内联编辑(为了我的目的,我想要一个非常小的轻量级自定义插件)。一切都很好,除非我用新值更新原始标签,它会删除用于激发编辑的编辑图像,因此不允许进一步编辑。
我尝试了以下操作,替换了编辑图像,但编辑图像不再具有与之关联的click
处理程序。
html看起来有点像这样
<h2 class="inlineEdit">Thing to edit<a href='' class='pencil_edit_image'></a></h2>
javascript看起来像:
var editThis = $(".inlineEdit");
var existinglink = editThis.find(".pencil_edit_image");
editThis.text($(this).val());
editThis.append(existinglink);
我最好能做到这一点吗?
答案 0 :(得分:4)
您是否尝试在更换前将其拆下?
var existinglink = editThis.find(".pencil_edit_image");
existingLink.detach();
editThis.text($(this).val());
editThis.append(existinglink);
答案 1 :(得分:1)
jQuery不支持文本节点,因此最简单的方法是将文本放在元素中,以便您可以轻松访问它:
<h2 class="inlineEdit"><span class="editable">Thing to edit></span><a href='' class='pencil_edit_image'></a></h2>
$(".inlineEdit .editable").text($(this).val());
要在不添加额外元素的情况下访问文本节点,可以使用DOM元素:
$(".inlineEdit")[0].firstChild.innerHTML = $(this).val();