2011-02-05 8 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> 

私は決めていない、まだ(その中に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

答えて

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

テーブルの行ar動的に生成される。

私はそれを何回もバインドすることが最良の解決策であるとは確信していませんが、それは機能します。

3

私は(まだ決めていない)、その中にTD /またはコンテンツにクリックイベントをバインドできるようにしたいと TRの相対(に含まれるIDを使用製品ID)を呼び出すために、関数 'view_product'を呼び出します。

あなたの言語はjQueryの構文に(多かれ少なかれ)を変換します。

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

項目がdelegate()を使用して動的に作成されている場合は、クリックイベントを結合するために、これを試してみてください:

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

それは正しく見えますが、運がまだありません。テーブルは動的に生成されるので、バインドが「登録された」時点でテーブル要素が作成されていないため、テーブルが動作していないと想定しました。私はそれを変更した後に移動しようとしました。 – Liam

+0

私は参照してください。私の更新されたコード例を見る – hunter

関連する問題