2011-11-02 80 views
0

我试图创建一个前端编辑器,我使用的是AJAX调用获取数据到一个新的div,像这样的新创建的div:jQuery的 - 编辑与jEditable不工作

function renderForm(type, position) { 
    $.ajax({ 
     type: 'POST', 
     url: 'renderForm.php', 
     data: "type="+type+"&position="+position, 
     success: function(data){ 
      var editbutoff = $(editbut).offset(); 
      $(document.createElement('div')).attr('id', 'editor') 
       .height(($(divpar).height()+20)) 
       .width(($(divpar).width()+20)) 
       .css({position: 'absolute', left: editbutoff.left-($(divpar).width()+20), top: editbutoff.top-20, margin: "5px"}) 
       .append(data) 
       .fadeIn("slow") 
       .prependTo(pptest); 
     } 
    }); 
} 

一切很棒'直到这里。新的div显示数据到位,一切看起来都应该如此,但是随后出现问题!

我试图使用jEditable插件编辑新创建的数据,但作为新创建的div是不存在加载文档时,我做了一个.live事件,像这样:

$("#editor").live('mouseenter', function(){ 
    $('.edt').editable(function(){ 
     console.log($(this).val()); 
    }); 
    $('.edtta').editable(function(){ 
     console.log($(this).val()); 
    }, { 
     type: 'textarea' 
    }); 
}); 

现在的问题是:

当我.edt元素上单击插件火起来,创建一个新的input,并在其中显示原始文本,但作为.edt元素是新的,当我尝试后可编辑的数据在控制台中显示为<h1 class="edt"><h1 class="edt">是jEditable创建的输入字段的父项。

任何人都可以在正确的方向指向我如何获得我实际输入在jEditable输入字段中的数据吗?

非常感谢!

回答

1

如果我没有误解你的问题,你试图提交之前提交的数据?如果是这样,使用的onsubmit方法:

 $('.edt').editable('@Url.Action('Edit', 'Home')', 
     { 
     onsubmit: function (settings, data) { 
      var input = $(data).find('input'); 
      var original = input.val(); 

      alert(original); 
     } 
     } 

您需要使用.find()来获取输入,则只能通过.VAL() 希望这有助于:)

+0

真棒获得的价值!非常感谢你。我认为在提交之前价值会是一样的,所以我没有打扰任何其他测试。这就是我无法深入了解插件的原因。 :) – Wowca

+0

很高兴我帮助:) – shennyL