处理数据表行内的事件
handle events inside datatable row
我对 datatable 中的事件有疑问。
我有一个 table 并且在几个列中,我有锚标记,例如:
<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>
我有这些功能:
$('.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)
如果我点击任何锚标签,事件不会触发,我在数据table 论坛上看到我应该做类似 this:
的事情
$('.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)
但如果我这样做,我必须单击两次 table 才能触发事件。
有什么解决办法吗?
on
方法是一个事件处理程序,您可以将其绑定到您感兴趣的事件,因此您无需在处理程序中调用 .click
方法。这应该足够了:
$('.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)
注意jQuery on
需要事件作为第一个参数,第二个是选择器。供参考jQuery API
我对 datatable 中的事件有疑问。
我有一个 table 并且在几个列中,我有锚标记,例如:
<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>
我有这些功能:
$('.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)
如果我点击任何锚标签,事件不会触发,我在数据table 论坛上看到我应该做类似 this:
的事情$('.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)
但如果我这样做,我必须单击两次 table 才能触发事件。
有什么解决办法吗?
on
方法是一个事件处理程序,您可以将其绑定到您感兴趣的事件,因此您无需在处理程序中调用 .click
方法。这应该足够了:
$('.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)
注意jQuery on
需要事件作为第一个参数,第二个是选择器。供参考jQuery API