3

我有由 AJAX 更新的 jeditable 字段,因此我将.live () 与 Jeditable 结合使用,以便能够在 AJAX 更新后持久绑定 jeditable 字段。但是,通过使用 live() 它会抑制第一次“点击”,而第二次点击使该字段可编辑。

有趣的是(也许是解决方案的关键)是,如果我使用“this”作为参考,那么每个单独的 jedtxt 类字段的第一次点击都会被抑制(即需要点击两次进入字段 A jedtxt,然后再次点击两次进入编辑字段 B jedtxt),但如果我使用类名“.jedtxt”,则第一次点击只会被抑制一次(需要点击 2 次才能输入字段 A,但之后可以通过单击输入字段 B - 似乎“记住”第一次点击整个班级。

使用 $(this) 抑制每次单击jedtxt 类元素时的第一次单击:

$('.jedtxt').live('click', function() {
$(this).editable('/post/somewhere',{ // note use of $(this)
'submit': 'OK',});});

使用 $('.jedtxt') 抑制第一次点击,只有一个 jedtxt 类被点击:

$('.jedtxt').live('click', function() {
$('.jedtxt').editable('/post/somewhere',{ // note use of $('.jedtxt')
'submit': 'OK',});});

jedtxt 元素如下:

<div id="ni-50" name="ni-50" class="jedtxt">somevalue to edit</div>

虽然第二种情况稍好一些,但我仍在寻找点击编辑以直接在第一次点击时工作。注意我尝试了双击或其他事件触发器,问题是一样的。这是一个普通的测试页面,没有其他事件链接到 div 元素。

在此先感谢您提供任何帮助。

4

1 回答 1

0

我建议你阅读这个主题:

带有 live() 函数的 jQuery 就地编辑问题.. 需要一个忍者

第二个解决方案中的那个人用

$(this).trigger('click');
    $('.editable').live('click',function() {

    $('.editable').editInPlace({
        callback: function(unused, enteredText) { return enteredText; },
        bg_over: "#cff",
        field_type: "textarea",
        textarea_rows: "5",
        textarea_cols: "3",
        saving_image: "./images/ajax-loader.gif"
    });  
    $(this).trigger('click');
 });
于 2012-07-15T23:01:55.493 回答