0

希望有人可以帮助我,因为我一直在寻找几个小时。

我计划使用 jeditable 进行现场编辑,使用 ruby​​ on rails。我可以很好地处理普通文本,但我在选择选项时遇到了一些问题。我想通过使用数据属性嵌入在字段中的集合将数据传递给可编辑字段。由于我的页面上有大约 40 或 50 个字段,我不能只为每个可编辑字段创建一个调用。

这是一些代码:

$(".editable[data-type='select']").editable("/post/here", {
    id: '_action',
    height: '1.8em',
    type: "select",
    data: $(this).data("collection")
    submit: "Ok",
    submitdata : function () {
        return {
            "id": this.getAttribute("data-query"),
            "index": this.getAttribute("data-index")                
        };
    }
});

该集合可以在我通过辅助方法生成的链接上找到:

content_tag(:div, opt_value, class: "editable", id: options[:_action], "data-query" => query.id, "data-index" => options[:index], "data-type" => "select", "data-collection" => Hash[double_array].to_json, style: "display:inline")

产生这样的东西:

<div class="editable" data-collection="{'0':'Option 0','1':'Option 1'}" data-query="33" data-type="select" id="some_action" style="display:inline">Option 1</div>

显然这不起作用:

data: $(this).data("collection")

通过尽量保持不显眼,有没有办法访问调用可编辑字段中的嵌入属性?

谢谢,屋大维

4

1 回答 1

0

显然这有点难以执行。

我最终编辑了 src,如果标签具有数据收集属性,它将尝试使用该数据,否则它将像以前一样执行。

这是一些代码:原始

...truncated...

content : function(data, settings, original) {
  /* If it is string assume it is json. */
  if (String == data.constructor) {
    eval ('var json = ' + data);
  } else {
    /* Otherwise assume it is a hash already. */
    var json = data;
  }

...truncated...

编辑代码:

...truncated...

content : function(data, settings, original) {
  /* If it is string assume it is json. */
  if (collection = $(original).data("collection")) {
    var json = collection;
  } else if (String == data.constructor) {
    eval ('var json = ' + data);
  } else {
    /* Otherwise assume it is a hash already. */
    var json = data;
  }

...truncated...
于 2012-10-19T13:26:09.130 回答