最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - How to bind dynamically appended link to ajax using InvokeCommand? - Stack Overflow

programmeradmin3浏览0评论

I am using Drupal 10. I was trying to append a table row to a table from modal window, when submitted. I see its working one way or another, but the ajax links inside the content, not opening the modal window, just after the add. But if I refresh the page, then the links works but I want to make it work without page refresh.

I have prepared the content like this:

$shipping_row = '<tr id="rx-shipping-row-' . $paragraph->id() . '">';
$shipping_row .= '  <td><span id="rx-shipping-serial-' . $paragraph->id() . '">'.$sl_count.'&nbsp;&nbsp;<a class="rx-delete-shipping-link use-ajax" data-dialog-options=\'{"dialogClass":"rx-dialog", "width":"800"}\' data-dialog-type="modal" href="/rx/shipping/delete/' . $node->id() . '/' . $paragraph->id() . '/nojs"><i class="fa fa-minus-circle">&nbsp;</i></a></span></td>';
$shipping_row .= '  <td><span id="rx-tracking-number-' . $paragraph->id() . '">' . ($paragraph->hasField('field_tracking_no')? $paragraph->get('field_tracking_no')->value : '') . '</span></td>';
$shipping_row .= '  <td><span id="rx-shipping-schedule-date-' . $paragraph->id() . '">' . ($paragraph->hasField('field_scheduled_date') ? date('Y-m-d', strtotime($paragraph->get('field_scheduled_date')->value)) : '') . '</span></td>';
$shipping_row .= '  <td><span id="rx-shipped-date-' . $paragraph->id() . '">' . ($paragraph->hasField('field_shipped_date') ? date('Y-m-d', strtotime($paragraph->get('field_shipped_date')->value)) : '') . '</span></td>';
$shipping_row .= '  <td><span id="rx-shipping-status-' . $paragraph->id() . '">' . ($paragraph->hasField('field_shipping_status') ? $paragraph->get('field_shipping_status')->value : '') . '</span>' . ($user->hasPermission('rx administer shipping') ? '<span id="rx-edit-shipping-status-' . $paragraph->id() . '">&nbsp;&nbsp;<a class="rx-edit-shipping-status-link" href="/rx/shipping/edit/' . $node->id() . '/' . $paragraph->id() . '/nojs"><i class="fa fa-pencil">&nbsp;</i></a>&nbsp;&nbsp;&nbsp;</span>' : '') . '</td>';
$shipping_row .= '</tr>';

I have used this to append the row like this: $ajax_response->addCommand(new InvokeCommand('#rx-shipping tbody', 'append', [$shipping_row])); This works, added the row, but ajax links are not working.

Then I try using another ajax command like this: $ajax_response->addCommand(new AppendCommand('#rx-shipping-body-' . $this->nid, $shipping_row)); This way, ajax links are working but it removes the < tr > tag wrapper, as a result table layout breaks.

Can anyone help me on this issue?

发布评论

评论列表(0)

  1. 暂无评论