2

我经常发现我需要在几个需要不同参数设置的区域上使用 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以这种方式工作..

如何访问为每个 jeditable 绑定动态操作的 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())}
    }   
});
4

2 回答 2

3

警告,完全未经测试的代码,但类似以下内容应该可以工作:

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

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

于 2009-08-12T20:51:28.903 回答
-1

这对我有用

$(this).data('rel)

对于 html

<div id="fruits" class="editme" data-rel="myfruits">apples</div>
于 2015-04-19T15:00:44.380 回答