2010-11-10 51 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') 
});