Jeditable不使用动态添加元素(ajax)

时间:2016-03-14 11:39:05

标签: jquery ajax dom jeditable

我正在使用jeditable修改answers的{​​{1}}个 我已经实现了整个逻辑成功期望通过ajax添加到dom的新答案 最初新添加的dom不可编辑,但在遵循一些解决方案后,它开始部分工作。

以下是我的代码段

question

启动$('.answer-section').delegate('.answer-descp', 'edit', function(){ $(this).editable('/answer/update', { type : 'textarea', event : 'edit', } }); }); 事件以编辑内容的链接(它也是动态添加的dom的一部分)

edit

$('.answer-section').on('click', '.editans', function(e){ e.preventDefault(e); $(this).parent().parent().prev().trigger('edit'); }); answer-section的类,其中包含所有答案,并在其中添加动态添加的新doms。
divanswer-descp的类,其中包含必须由div编辑的文本。
当我们发布新答案(通过ajax)时,新的dom会添加jeditable div,其中包含答案文字和一个新的answer-descp类链接,点击后会修改此新添加的答案

我的问题是我必须单击编辑链接2次才能使其可编辑。我尝试了很多变化,但没有成功。 提前致谢

1 个答案:

答案 0 :(得分:0)

旧线程,但我有同样的问题,并对这些未解答的问题感到恼火。 最后答案是如此清晰,但也许这可以节省一些奇怪的时间来敲打你的头脑。

第一次点击会将可编辑事件添加到第二次触发它的元素。

添加可编辑状态不需要点击事件,并且它会自行广告以触发它。

对我而言,将.editable()添加到模态后直接调用它是有效的 即

$('#someID').contextmenu(function (e) {
    e.preventDefault();
    $('.someClass').modal('<span class="editable">'+someVal+'</span>'));
    $('.editable').editable('some/URL/'); 
}

对于ajax,这可能应该在success部分完成。