簡體   English   中英

如何將jquery change事件綁定到動態表/行?

[英]how to bind jquery change event to dynamic tables/rows?

在PHP中,我具有動態數量的表,並且每個表具有動態的行數。 表中的最后一列($ reasonstr)是一個下拉列表。 我想捕捉下拉菜單中的更改。 如果我這樣做:

                    $('#reason2td3').change(
                     function(){
                        }

我能夠捕捉到我所需要的。 但是,根據頁面上表和行的數量,我希望它是動態的。

我確定了表和行,如下所示:

表,其中$ id隨着頁面上的每個表增加:

echo sprintf('<table cellspacing="0" class="myTable" id="myTable%s">',$id);

因此,如果頁面上有兩個表,它們就是#myTable1和#myTable2。

行,其中$ tdid隨着表中的每一行增加:

                     echo '<tbody>';
                   foreach ($record as $r) {
                        echo sprintf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>$ %s</td><td>%s</td><td id="reason%std%s">%s</td></tr>',
                             $r['org_number'],
                             $r['dept_descr'],
                             $r['supplier_number'],
                             $r['supplier_name'],
                             $r['invoice_number'],
                             $r['receive_date'],
                             $r['final_qty'],
                             number_format($r['final_cost'],2),
                             $r['inv_status'],
                                $id,
                                $tdid,
                                $reasonstr);
                             $tdid++;
                   }
                  echo '</tbody></table>';
                  $tdid=0;

因此,表2中的第三行是#reason2td3。

如何從PHP捕獲$ id和$ tdid並在JQuery中使用它?

使用以選擇器開頭屬性

$('[id^="myTable"]').on('change', function(){
   var $id   = this.id;
   // do stuff
});

這將定位以myTable開頭的ID的所有元素,例如myTable1myTable2myTableStackOverflowChineseOldMan等。

用PHP插入元素並不能真正使它們具有動態性,因此不需要為此委托事件處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM