【问题标题】:Jeditable and .live() Suppress first ClickJeditable 和 .live() 抑制第一次点击
【发布时间】:2012-05-22 00:42:04
【问题描述】:

我有由 AJAX 更新的 jeditable 字段,因此我将 .live() 与 Jeditable 结合使用,以便能够在 AJAX 更新后持久绑定 jeditable 字段。但是,通过使用 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>

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

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

【问题讨论】:

    标签: javascript jquery jeditable jquery-click-event


    【解决方案1】:

    我建议你阅读这个主题:

    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');
     });
    

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 2023-04-07
      • 2011-10-23
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      相关资源
      最近更新 更多