2013-04-16 29 views
6

x-editableとjQueryの新機能ですので、x-editableを使用してクリックした要素の「id」を取得する方法を理解している問題があります。 。x-editableクリックした要素のIDを取得する方法

#line_item_unit_costという名前のdiv内に私のページにいくつかのリンクがあります。

<div id="line_item_unit_cost"> 
     <a id="1">link</a> 
     <a id="2">link</a> 
     <a id="3">link</a> 
     <a id="4">link</a> 
     <a id="5">link</a> 
</div> 

リンクの1つをクリックすると、インライン編集を実行できるx-editableスクリプトが実行されています。私が抱えている問題は、自分のdbを更新できるように、私が作業しているラインアイテムを渡す必要があるということです。私はクリックするリンクの "id"にアクセスする方法(または私が間違っている)を知らない。

$('#line_item_unit_cost a').editable({ 
      validate: function(value) { 
       if($.trim(value) == '') return 'This value is required.'; 
      }, 
      type: 'text', 
      url: '/post', 
      pk: {{ purchaseOrder.id }}, 
      title: 'Enter Value', 
      params: { 
       purchaseOrderId : {{ purchaseOrder.id }} , 
       lineId : $(this).attr("id"), 
       text: 223 
      }, 
      ajaxOptions: { 
       dataType: 'json' 
      }, 
      success: function(response, newValue) { 

      } 
     }); 

この行::lineId:$(この).ATTR( "ID")私にはnull値を与える

は、ここに私のスクリプトです。

lineId:$( "#line_item_unit_cost a")。attr( "id")を使用すると、編集中のものではなく、ページの "id"の最初のインスタンスが引き続き保持されます。

誰かがx-editableを使用してクリックしたリンクのIDを取得する方法を知っていますか?

ありがとうございます!私が代わりにこれを必要とし、他のケース誰にポストを削除するソリューションを提供することを決めた

答えて

11

...

$('#line_item_unit_cost a').editable({ 
      validate: function(value) { 
       if($.trim(value) == '') return 'This value is required.'; 
      }, 
      type: 'text', 
      url: '/poste', 
      pk: {{ purchaseOrder.id }}, 
      title: 'Enter Freight Value', 
      params: function(params) { 
       var line = $(this).attr("id"); 
       var data = {}; 
       data['purchaseOrderId'] = params.pk; 
       data['field'] = params.name; 
       data['value'] = params.value; 
       data['lineId'] = line; 
       return data; 
      }, 
      ajaxOptions: { 
       dataType: 'json' 
      }, 
      success: function(response, newValue) { 

      } 
     }); 
+0

私はつもりだったが、あなたが見られるのと同じ、良いことを示唆して(と掲載!)答え:) – robertklep

0
$(custom_selector).each(function() { 
    var current_element = $(this); 
    $(this).editable({ 
     //common code where you can use current_element 
    });  
}); 
関連する問題