Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получение и передача значения id предка (https://javascript.ru/forum/jquery/24833-poluchenie-i-peredacha-znacheniya-id-predka.html)

=VNK= 15.01.2012 19:14

Получение и передача значения id предка
 
Здравствуйте!
Возник вопрос по передаче значения id предка и значения элемента, в котором произошло событие в функцию. Ситуация следующая... Имеется html код:
<div class="icont" id="0">
	<div class="pview">
		<img class="view" src="/img/123.jpg>" alt="" />
	</div>
	<div class="descr">
		<div class="txt">Текст</div>
	</div>
	<div class="data">
		<input type="text" name="orderNum" value="5" />
		<img src="/img/delete.png" alt"" />
	</div>
</div>
Таких блоков (div с классом icont) на странице несколько. Код формируется на сервере динамически и каждому id вышеуказанного блока присваивается свое значение. Нужно при изменении значения в поле с именем name="orderNum"Передать в функцию обработчик два параметра:
1. - значение id предка вышеописанного блока.
2. - вновь введенное значение в поле input с именем name="orderNum" Присвоить id тегу input нельзя, так как id хранит идентификатор товара. Он еще используется для удаления элемента по клику на изображение, определенное в теге img Поэтому при возникновении события клика на изображении, либо изменения значения в поле input необходимо получать значение id предка и передавать его в функцию.
Предполагаю, что необходимо использовать closest() и preventDefault(), но каким образом, никак не соображу. Навешивание события:
$('input[name=orderNum]').change({id:здесь значение id предка, num: здесь значение поля input, вызвавшее событие }, changeNumber)

changeNumber функция, в которую необходимо передать вышеописанные значения. Пробовал получить значение id предка так:
$(this).closest('.icont').attr('id')
но видимо неверно. Прошу помочь, кто знает.

Pavel M. 15.01.2012 21:26

Цитата:

Сообщение от =VNK=
необходимо получать значение id предка и передавать его в функцию

зачем передавать, функция сама определит

$('input[name=orderNum]').change(function () {
 alert('id предка ' + $(this).closest('.icont').attr('id'));
});

=VNK= 15.01.2012 23:38

Pavel M., Спасибо. С получением значения видимо я не ошибся. Через анонимную функцию действительно работает, просто не пробовал. Хотелось бы сделать с передачей параметров, так как функция будет использоваться для других элементов да и просто интересно. Ведь судя по документации метод .change() это позволяет...


Часовой пояс GMT +3, время: 14:16.