Jeditable:如何根据dom元素属性设置参数

时间:2009-08-10 15:34:57

标签: jeditable

我经常发现需要在几个需要不同参数设置的区域使用jeditable。

例如,我使用jeditable和autosuggest输入类型,然后我需要将不同的数据源传递给不同的输入。

我只想使用可编辑插件的一个实例,并尝试将attr-values分配给脚本,但显然这不会像我接近它那样工作..

我希望有人能引导我一点......

基本上我希望能够根据它正在操作的dom元素的属性值设置一个可编辑的参数值。

类似的东西:

$('.editme').editable('savedata.php',{
    loadurl   : 'loaddata.php',
    loaddata  : { handle:  $(this).attr('rel') }
});

然后我可以简单地指定不同的负载源:

<div id="fruits" class="editme" rel="myfruits">apples</div>

我没有找到关键字 this 以这种方式工作..

如何为每个可编辑绑定动态操作动态操作的dom元素的属性?

这是我想要做的另一个例子:     authorsList =“”。split(“,”);

  // extend jeditable with autocomplete 
  $.editable.addInputType('autoc', {
      element: function(settings, original) {
      var input = $("<input />").autocomplete(settings.mdata, settings.autoc);
      $(this).append(input);
  return input; }
   });

$('.editable.authors').editable('savedata.php',{
   type : "autoc", 
   mdata    : $(this).attr('rel'), // should hold the name 'authorsList'
   onblur   : 'ignore',
   autoc    : {  multiple: true,
                 multipleSeparator: ',' },
    loadurl   : 'loaddata.php',
    loadtype  : 'POST',
    loaddata  : {handle: function(){ return eval($("#objhandle").val())}, lookuptype: 'mirror'},
    submit    : 'save',
    cancel    : 'cancel',
    tooltip   : "Click to edit",
    style     : "inherit",
    cssclass  : 'jedi',
    id        : "field",
    name      : "data",
    submitdata : {
        storetype: 'mirror',
        handle: function(){return eval($("#objhandle").val())},
        timestamp: function(){return eval($("#objtimestamp").val())}
    }   
});

2 个答案:

答案 0 :(得分:3)

警告,完全未经测试的代码,但以下内容应该有效:

$('.editme').each(function() {
    $(this).editable('savedata.php',{
        loadurl   : 'loaddata.php',
        loaddata  : { handle:  $(this).attr('rel') }
    });
});

这样,在元素上初始化Jeditable时, this 的得分应该是正确的。

答案 1 :(得分:-1)

这对我有用

$(this).data('rel)

和html

<div id="fruits" class="editme" data-rel="myfruits">apples</div>