Jquery在循环中使用PHP填充的表行

时间:2014-12-04 01:51:56

标签: javascript jquery html5 triggers

希望有人拥有jQuery专业知识帮助我...

我有一个使用这样的代码通过php动态创建的表:

...
  <tbody>
<?php
foreach ($members as $member){
  echo '<tr>';
    echo "<td><a href='#' class='edituser-information' title='edituser_information' data-id=" .$member['id']. "><img src='/images/edit-button.png' width='59' height='28' alt='EDIT'></a>";
  echo '</tr>';
}?>
  </tbody>
...

我将信息传递给jQuery函数,然后使用它传递ajax:

$('#editUsersTable tbody').on('click', 'tr', function (){           
  data_id = $('td a.edituser-information', this).eq(0).attr('data-id');
  $.ajax({
   url: 'edit_specific_user.php',
   type: 'POST',
   data: {id : data_id},
   ...

问题:

ajax脚本正确地获取data-id,因为它通过单击的行加载信息...不幸的是,我想要的是用户强制单击编辑按钮,而不仅仅是行中的桌子......

截至目前,用户只需单击该行,然后直接进入jQuery,因为entire row是触发器。

如何更改用户必须单击特定行的编辑按钮,而不是行本身?

提前谢谢!!

2 个答案:

答案 0 :(得分:1)

尝试

$('#editUsersTable tbody tr td').on('click', 'a.edituser-information', function (){           
    data_id = $(this).eq(0).attr('data-id');
    $.ajax({
    url: 'edit_specific_user.php',
    type: 'POST',
    data: {id : data_id},
    ...

答案 1 :(得分:0)

您需要在第一行更改传播选择器:

$('#editUsersTable tbody').on('click', 'tr', function (){  

更改为

$('#editUsersTable tbody').on('click', 'tr a', function (){  

请参阅&#34;直接和委派活动&#34; &#34; on&#34;

的jQuery文档中的部分

http://api.jquery.com/on/