2012-06-19 56 views
2

我使用Jeditable jQuery插件,使到位變爲列表編輯。這適用於頁面上現有的列表項。jeditable動態元素

$('.edit').editable('http://localhost:8080/EditInPlace/Editable', { 
    event  : "dblclick", 
    callback : function(value, settings) { 
     $(".dropdown dt a span").html(value); 
     $("#result").html("Selected value is: " + getSelectedValue()); 
    } 
}); 

但是,我在頁面上動態添加列表項,並且這些不響應事件處理程序。我假設我需要使用委託事件,就像我用於點擊事件一樣。

$(document).on("click",".edit",function(e){ 
    alert("click!"); 
}); 

我無法弄清楚如何將Jeditable處理程序添加到委派事件。有什麼建議麼?

回答

3

代表團方法適用於事件。您可以創建一個自定義事件,但爲了保持簡單,現在只需在每次添加需要它的新元素時調用您的插件即可。

這可以在ajax成功回調中,或者在代碼中調用任何插入方法(如append()html())之後。

幾件事情可以做,以保持代碼的精簡是存儲插件的選項對象中的變量,所以你不必創建它們每一次,或者創建一個包含許多插件調用功能。

例子:

var edit={ 
     url: 'http://localhost:8080/EditInPlace/Editable', 
     opts:{ 
      event  : "dblclick", 
      callback : function(value, settings) { 
       $(".dropdown dt a span").html(value); 
       $("#result").html("Selected value is: " + getSelectedValue()); 
     } 
    } 
}; 

$(selector).append(newContentString).find('.editClass').pluginName(edit.url, edit.opts) 
+0

它完美。謝謝!無法獲得存儲在變量中的選項,但我會解決這個問題。 – user1236595