【问题标题】:Making JEditable work on new elements (.live)使 JEditable 在新元素上工作 (.live)
【发布时间】:2010-11-10 11:19:34
【问题描述】:

我正在使用 JEditable 插件进行就地编辑。

我有一个“设置”函数,它在所有相关类上调用.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。

有更好的解决方案吗?

【问题讨论】:

    标签: javascript jeditable jquery


    【解决方案1】:

    我也刚刚提出这个问题,并以更优雅的方式解决了它(恕我直言)。

    $('.jqEdit').live('click',function(event) {
        event.preventDefault();
        $(this).editable('save.php')
    });
    

    【讨论】:

      【解决方案2】:

      在一个元素上多次调用 editable 没有副作用,对吧?那么为什么不在每次发生任何变化时重新进行设置。

      【讨论】:

      • 这实际上就是我正在做的事情,除了不是为每个人重做它,我正在重做它(或第一次做)刚刚单击的元素。不过,感觉有点不对。
      • 它可以工作,并且保持代码整洁。它没有坏,所以不需要修理它。
      猜你喜欢
      • 2012-10-03
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      相关资源
      最近更新 更多