2010-11-10 39 views
6

我正在使用JEditable插件进行就地编辑。使JEditable能够处理新元素(.live)

我有一个“设置”功能,在所有相关的类调用.editable()。问题是,我最近添加了一些我想编辑的元素。显然,新加入的.editable()永远不会被他们接到。

换句话说,我期待得到的效果,jquery的live()函数确实,但editable()函数。

我目前的解决方法似乎有点难看,我(redscribe_button是需要点击编辑文本按钮):

$(".redescribe_button").live("click", function(click_event) { 
    click_event.preventDefault(); 

    $(".editable", $(this).parent().parent()).editable("/temp/", { 
     event: "make_editable", 
     indicator : 'Saving...', 
     tooltip : 'Click to edit...' 
    }); 

    $(".editable", $(this).parent().parent()).trigger('make_editable'); 
}); 

换句话说,我只是每次调用.editable编辑按钮被点击。

更好的解决方案的任何想法?

回答

3

调用一次编辑多个元素上无不良副作用,对不对?那么为什么不在每次有任何变化时重新进行设置。

+0

这实际上就是我正在做的事情,除了不是为所有人重做它,我只是在单击的元素上重做它(或者第一次)。不过,这感觉有点不对。 – 2010-11-10 14:17:56

+1

它的工作原理,它使代码保持整洁。它没有损坏,所以不需要修复它。 – 2010-11-10 14:23:05

5

我刚来到这个问题也解决了和它在一个更优雅的方式(恕我直言)

$('.jqEdit').live('click',function(event) { 
    event.preventDefault(); 
    $(this).editable('save.php') 
});