Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Making JEditable work on new elements (.live)

I'm using the JEditable plugin for in-place editing.

I have a "setup" function which calls .editable() on all the relevant classes. The problem is, I have newly appended elements which I'd like to make editable as well. Obviously, being newly added, .editable() never gets called on them.

In other words, I'm looking to get the effect that jquery's live() function does, but for the editable() function.

My current workaround seems kinda ugly to me (redscribe_button is the button that needs to be clicked to edit the text):

$(".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');
});

In other words, I'm just calling .editable every time the edit button is clicked.

Any ideas for a better solution?

like image 995
Edan Maor Avatar asked Nov 10 '10 11:11

Edan Maor


1 Answers

I just came to this question as well and solved it in a more elegant way (IMHO).

$('.jqEdit').live('click',function(event) {
    event.preventDefault();
    $(this).editable('save.php')
});
like image 70
Naoise Golden Avatar answered Sep 20 '22 00:09

Naoise Golden