我正在使用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());
}
});但是,我在页面上动态添加列表项,这些列表项不会响应事件处理程序。我假设我需要使用委托事件,就像我在click事件中使用的一样。
$(document).on("click",".edit",function(e){
alert("click!");
});我不知道如何将Jeditable处理程序添加到委托事件中。有什么建议吗?
发布于 2012-06-20 00:18:46
委托方法适用于事件。你可以创建一个自定义事件,但是为了简单起见,每次添加需要的新元素时,只需调用你的插件即可。
这可以在ajax成功回调中实现,也可以在代码中调用任何插入方法(如append()或html() )之后实现。
为了保持代码更精简,你可以做的几件事是将插件的options对象存储在一个变量中,这样你就不必每次都创建它们,或者创建包含大量插件调用的函数。
示例:
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)https://stackoverflow.com/questions/11104901
复制相似问题