【问题标题】:jeditable dynamic elements可编辑的动态元素
【发布时间】:2012-06-19 16:01:47
【问题描述】:

我正在使用 Jeditable JQuery 插件对列表进行就地编辑更改。这适用于页面上的现有列表项。

$('.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 处理程序添加到委托事件。有什么建议吗?

【问题讨论】:

    标签: jquery jeditable


    【解决方案1】:

    委托方法适用于事件。您可以创建一个自定义事件,但现在为了简单起见,只需在每次添加需要它的新元素时调用您的插件。

    这可以在 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)
    

    【讨论】:

    • 效果很好。谢谢!无法使存储在变量中的选项起作用,但我会弄清楚的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2019-01-10
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多