使JEditable在新元素上工作(.live)

时间:2010-11-10 11:19:35

标签: javascript jeditable jquery

我正在使用JEditable插件进行就地编辑。

我有一个“设置”功能,可以在所有相关的类上调用.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。

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

2 个答案:

答案 0 :(得分:5)

我刚刚也提到了这个问题并以更优雅的方式解决了它(恕我直言)。

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

答案 1 :(得分:3)

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