2017-10-02 1 views
0

Ich habe ein Problem mit den Ereignissen in der datatable.Handle Ereignisse in Datentabelle Zeile

Ich habe eine Tabelle und in mehreren Spalten, ich habe Anker-Tags, zum Beispiel:

<tr role="row" class="odd"> 
    <td class="sorting_1">1</td> 
    <td>4.000,00</td> 
    <td> 
    <a class="js-details" id="9"> 
     <p class="blue-text">Ver detalle</p> 
    </a> 
    </td> 
    <td>04/09/2017</td> 
    <td> 
    <a class="icon-checkmark"></a> 
    <a class="icon-x red-text js-payment-rejected" href="#" id="9" title="Rechazar el Pago"></a> 
    </td> 
</tr> 

Und ich habe diese Funktionen:

$('.js-payment-approved').click -> 
    payment_document_id = $(this).attr('id') 
    $.get("#{approved_payment_documents_path}", payment_document_id: payment_document_id) 

$('.js-payment-rejected').click -> 
    payment_document_id = $(this).attr('id') 
    $.get("#{rejected_payment_payment_documents_path}", payment_document_id: payment_document_id) 

Wenn ich auf einen der Anker-Tags klicken das Ereignis wird nicht ausgelöst, ich auf dem Datatable Forum gelesen, dass ich so etwas wie this tun soll:

$('.approved-datatable').on 'tr', 'click', (e) -> 
    $('.js-payment-rejected').click -> 
    payment_document_id = $(this).attr('id') 
    $.get("#{rejected_payment_payment_documents_path}", payment_document_id: payment_document_id) 

Aber wenn ich das tue, muss ich zweimal auf den Tisch klicken, um das Ereignis auszulösen.

Irgendwelche Ideen, um das zu lösen?

Antwort

0

Die on Methode eine Ereignisbehandlungsroutine, die Sie an das Ereignis binden können, für das Sie sich interessieren, so dass Sie die .click Methode innerhalb des Handlers nicht aufrufen müssen. Dies sollte genug sein:

$('.approved-datatable').on 'click', '.js-payment-rejected', (e) -> 
    payment_document_id = $(this).attr('id') 
    $.get("#{rejected_payment_payment_documents_path}", payment_document_id: payment_document_id) 

Darauf achten, dass jQuery on das Ereignis als ersten Parameter benötigt, während der zweite ein Selektor ist. Als Referenz jQuery API

Verwandte Themen