在为其附加元素后无法编辑js

时间:2010-02-17 13:34:45

标签: jquery ajax inline-editing

我写了一个脚本,为我的SQL数据库和我的网站创建一个新元素。 如果帖子好,我会收回帖子的ID,所以我可以制作像其他DIV一样的DIV盒子。

问题是,我可以内联编辑所有DIV中的文本,但不能编辑创建的文本。

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var moveit = $("<img>").attr({src: "icons/arrow_switch.png", class: "handle", alt: "move"});
        var editarea = $("<div>Ide írjon szöveget</div>").attr({class: "edit_area", id: ajaxRequest.responseText});
        $("<li></li>").attr({id: "listItem_"+ajaxRequest.responseText}).append(moveit).append(editarea).appendTo('#test-list');
    }

示例:原始DIV之一

<li id="listItem_84"><img alt="move" class="handle" src="icons/arrow_switch.png"><div id="84" class="edit_area">Ide írjon szöveget...</div></li>

JS创建了DIV

<li id="listItem_88"><img src="icons/arrow_switch.png" class="handle" alt="move"><div class="edit_area" id="88">Ide írjon szöveget</div></li>

所以我真的不知道为什么我不能编辑新的线路?!请给我一个解决方案。

感谢您的帮助&lt; 3

1 个答案:

答案 0 :(得分:1)

您只调用了调用时所在元素的可编辑状态,您可以将它作为ajax函数的一部分安装到新元素中:

ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
    var moveit = $("<img>").attr({src: "icons/arrow_switch.png", class: "handle", alt: "move"});
    var editarea = $("<div>Ide írjon szöveget</div>")
                      .attr({class: "edit_area", id: ajaxRequest.responseText})
                      .editable(...same options here...);
    $("<li></li>").attr({id: "listItem_"+ajaxRequest.responseText})
      .append(moveit).append(editarea).appendTo('#test-list');
  }
}

只需为加载页面时使用的.editable()调用选择相同的选项。