2010-11-10 17 views
6

Używam wtyczki JEditable do edycji na miejscu.Tworzenie JEditable na nowych elementach (.live)

Mam funkcję "setup", która wywołuje .editable() we wszystkich odpowiednich klasach. Problem polega na tym, że mam nowo dodane elementy, które również chciałbym edytować. Oczywiście, będąc nowo dodanym, .editable() nigdy nie zostanie wywołany na nich.

Innymi słowy, szukam efektu, który ma funkcja JQuery live(), ale dla funkcji editable().

Moje bieżące obejście wydaje mi trochę brzydki (redscribe_button znajduje się przycisk, który należy kliknąć, aby edytować tekst):

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

Innymi słowy, Dzwonię .editable każdym razem edycja przycisk jest kliknięty.

Jakieś pomysły na lepsze rozwiązanie?

Odpowiedz

3

Dzwonienie do edycji więcej niż jeden raz na elemencie nie ma żadnych niepożądanych efektów ubocznych, prawda? Dlaczego więc nie po prostu powtórzyć konfiguracji za każdym razem, gdy coś się zmieni.

+0

To jest właśnie to, co robię, z wyjątkiem zamiast ponawiania go dla wszystkich, przerabiam go (lub robię to po raz pierwszy) na właśnie klikniętym elemencie. Mimo to wydaje się to nie w porządku. –

+1

Działa, i utrzymuje kod w porządku i porządku. Nie jest zepsuty, więc nie trzeba go naprawiać. –

5

Po prostu przyszedłem na to pytanie i rozwiązałem je w bardziej elegancki sposób (IMHO).

Powiązane problemy