2011-02-05 51 views
1

選擇產品我有一個表,如下所示(簡化):jQuery的從TD

<table id="product_table"> 
    <tbody> 
     <tr> 
      <th>Product</th> 
      <th>Action</th> 
     </tr> 

     <tr rel="1"> 
      <td>Product Name 1</td> 
      <td class="select_product">[SELECT]</td> 
     </tr> 

     <tr rel="2"> 
      <td>Product Name 2</td> 
      <td class="select_product">[SELECT]</td> 
     </tr> 

     <tr rel="3"> 
      <td>Product Name 3</td> 
      <td class="select_product">[SELECT]</td> 
     </tr> 
    </tbody> 
</table> 

我希望能夠到一個click事件綁定到TD /或在它的內容(尚未決定),並且爲了參數調用函數'view_product',使用父tr的rel(產品id)中包含的id。

我嘗試了一堆組合,但我沒有得到任何地方。

任何指針?

在此先感謝。 利安


$('td.select_product').bind('click', function() { 
    var id = $(this).parent().attr("rel"); 
    $.select_product(id); 
}); 

表中的行放置後產生。我不確定多次綁定它是最好的解決方案,但它的工作原理。

+0

如果您在解決方案中將「bind」更改爲「live」,即使添加了新行而無需重新綁定,它也可以工作。 – icktoofay 2011-02-05 01:50:57

回答

0
$('td.select_product').bind('click', function() { 
    var id = $(this).parent().attr("rel"); 
    $.select_product(id); 
}); 

放在錶行後面ar e動態生成。

我不確定多次綁定是最好的解決方案,但它的工作原理。

3

我希望能夠到點擊事件綁定到TD /或其中的內容(尚未確定),並使用包含在 TR的相對ID(產品ID)在調用功能'view_product'爲參數。

你的語言翻譯(或多或少)到jQuery的語法:

$("td.select_product").click(function(){ 
    var id = $(this).parent().attr("rel"); 
    view_product(id); 
}); 

嘗試此,如果在創建項目綁定click事件動態使用delegate()

$("#product_table").delegate(".select_product", "click", function(){ 
    var id = $(this).parent().attr("rel"); 
    view_product(id); 
}); 
+0

它看起來不錯,但仍然沒有任何運氣。該表是動態生成的,所以我認爲它不起作用,因爲表格元素尚未在綁定「註冊」的位置創建。我試過把它移到後面,但沒有改變。 – Liam 2011-02-05 01:34:05