2013-04-16 15 views
6

Jestem nowy w X-editable i jQuery, więc mam problem ze zrozumieniem, jak uzyskać "id" klikniętego elementu za pomocą x-editable, mam nadzieję, że ktoś może pomóc .x-editable jak uzyskać identyfikator klikniętego elementu

Mam kilka linków na mojej stronie w ramach div o nazwie #line_item_unit_cost.

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

Po kliknięciu na jeden z linków ja odpaleniem skryptu X edycji, która pozwoli mi zrobić zmienił inline. Problem, który mam, polega na tym, że muszę przekazać element zamówienia, nad którym pracuję, aby móc zaktualizować bazę danych. Nie wiem jak (lub robię to źle), aby uzyskać dostęp do tego "id" linku klikam.

Oto mój skrypt:

$('#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) { 

      } 
     }); 

Linia: lineId: $ (this) .attr ("id") daje mi wartość null.

Jeśli użyję lineId: $ ("# line_item_unit_cost a"). Attr ("id") ciągle wyciąga pierwsze wystąpienie na "id" strony, a nie to, które jest edytowane.

Ktoś wie, jak uzyskać identyfikator linku, który kliknąłem, używając x-editable?

Dziękuję bardzo !!!

Odpowiedz

11

decydowałem ja zaoferować rozwiązanie zamiast usunięcie posta na wypadek gdyby ktoś jeszcze potrzebne to ...

$('#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

Chciałem zasugerować taką samą, dobrą rzeczą, jaką można znaleźć (i zamieszczonych!) odpowiedź :) – robertklep

0
$(custom_selector).each(function() { 
    var current_element = $(this); 
    $(this).editable({ 
     //common code where you can use current_element 
    });  
}); 
Powiązane problemy