2012-10-02 47 views
0

希望有人能幫助我,因爲我一直在尋找幾個小時。Jeditable:在配置中訪問標籤數據參數

我打算使用jeditable進行軌道上的ruby編輯。我可以做正常的文本,但我在選擇選項時遇到了一些問題。 我想通過使用數據屬性嵌入在字段中的集合將數據傳遞到可編輯字段。由於我的網頁上有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") 

通過儘可能保持不顯眼,有沒有辦法訪問調用可編輯字段內的嵌入式屬性?

感謝, 屋大維

回答

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...