Jeditable和.live()首先禁止点击

时间:2012-05-22 00:42:04

标签: javascript jquery jeditable jquery-click-event

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

有趣的是(也许是解决方案的关键)是如果我使用'this'作为参考,对每个单独的jedtxt类字段抑制第一次点击(即需要点击两次才能输入字段一个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>

虽然第二种情况略好一些,但我仍然希望点击编辑直接在第一次点击时工作。注意我尝试双击或其他事件触发器,问题是相同的。这是一个vanilla测试页面,没有其他事件链接到div元素。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议你阅读这个主题:

Problem with jQuery edit-in-place with live() function.. need a ninja

第二个解决方案的人用

解决了这个问题
$(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');
 });