2010-08-24 3 views
2

Просто ищите наилучший способ сделать это. У меня есть информация о списке таблиц, а в последнем столбце есть кнопка с «Редактировать/Открыть». Когда пользователь нажимает на кнопке область DIV появляется с дополнительной информацией, которая может быть отредактированаpass var to function() js with jquery

кода ниже с некоторыми фрагментами JSTL

<script type="text/javascript"> 
//Click on Edit/View on table 
$('.viewCustomer').click(function() 
{ 
    ....... 
}); 

</script> 

<tr class="odd"> 
    <td>${customerBean.comName}</td> 
    <td>${customerBean.comCode}</td> 
    <td class="noRightPad"> <input type="submit" name="createBut" value="View/Edit" class="viewCustomer" /> </td> 
</tr> 

Так что мой вопрос будет:

(1) как я передаю переменную функции $ ('. viewCustomer'). click (function()

(2) Это лучший способ сделать это. Есть ли более эффективный/безопасный/это?

Cheers Alexis

ответ

2

Функция click не будет вызываться вами. Она вызывается, когда кнопка нажата, и как таковой объект события передается к нему:

$('.viewCustomer').click(function(evt){ 
    ....... 
}); 

Что именно вы желающих пройти? Вы можете получить доступ к элементу DOM, который вы нажимаете, используя this и $(this), так что, возможно, можно указать, что вы хотите отсюда.

EDIT Для комментария

, если пользователь нажал на кнопку, которая была в 4-й строке таблицы и в , что Роу другой Колум был клиента идентификатор 1234 я хочу, чтобы передать переменная 1234.

Примечание: ни один из ниже не было проверено, но должно хватить

Предположим, что ваш столбец «идентификатор клиента» имеет имя класса «customerid». Так что ваш HTML может быть:

<tr class="odd"> 
    <td>${customerBean.comName}</td> 
    <td class="customerid">${customerBean.comCode}</td> 
    <td class="noRightPad"> <input type="submit" name="createBut" value="View/Edit" class="viewCustomer" /> </td> 
</tr> 

JQuery может выглядеть примерно так:

$('.viewCustomer').click(function(){ 
    var $buttonCell = $(this).parent(); //the <td> containing the button 
    var $buttonRow = $buttonCell.parent(); //the <tr> containing the button and your customer id 
    var $customerIdCell = $buttonRow.find("td.customerid"); 
    var customerId = $customerIdCell.text(); 
}); 

Вышеуказанный proken вниз на линию, чтобы показать вам, как материал для его извлечения. Использование «цепочка» мы можем выразить это более лаконично:

$('.viewCustomer').click(function(){ 
    var customerId = $(this).parent().parent().find("td.customerid").text(); 
} 

Вы можете также искать для CUSTOMERID ячейки как «собрат» ячейки кнопки для еще более лаконичного подхода (и один вызова функции меньше).

$('.viewCustomer').click(function(){ 
    var customerId = $(this).parent().siblings("td.customerid").text(); 
} 
+0

Привет, Ищу передать переменную строку. Так что, если пользователь нажал на кнопку, которая была в 4-й строке таблицы, и в этой строке другая колонка имела идентификатор клиента 1234, я хочу передать переменную 1234. cheers alexis – alexis

+0

Джеймс благодарит миллион! Вот что мне нужно. Alexis – alexis