Jquery выбрать продукт из тд - PullRequest
       50

Jquery выбрать продукт из тд

1 голос
/ 05 февраля 2011

У меня есть таблица, которая выглядит следующим образом (упрощенно):

<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 / или содержимым в нем (еще не решено) и использовать идентификатор, содержащийся в родительском значении tr (идентификатор продукта), при вызове функции view_product. ради аргументов.

Я пробовал стек комбинаций, но нигде не получаю.

Есть указатели?


Решение

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

Помещается после генерации строк таблицы. Я не уверен, что связывание его несколько раз является лучшим решением, но оно работает.

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

Я хочу иметь возможность связать событие click с td / или содержимым внутри него (еще не решено) и использовать id содержится в родительском tr rel (идентификатор продукта) в вызове функции ' view_product ' для аргументов.

ваш язык переводит (более или менее) в синтаксис jQuery:

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

Попробуйте связать событие щелчка, если элементы создаются динамически с помощью делегат () :

$("#product_table").delegate(".select_product", "click", function(){
    var id = $(this).parent().attr("rel");
    view_product(id);
});
0 голосов
/ 05 февраля 2011
$('td.select_product').bind('click', function() {
    var id = $(this).parent().attr("rel");
    $.select_product(id);
});

Размещается после динамического генерирования строк таблицы.

Я не уверен, что его многократное связывание является лучшим решением, но оно работает.

...