Одна функция для нескольких элементов
Добрый день!
Я - php-программист, столкнулся с необходимостью изучения jQuery. Всё довольно просто и понятно, но есть один вопрос, который по идее элементарный, но я почему-то не могу прийти к ответу. Помогите мне, пожалуйста! Вот моя проблема: У меня на странице есть список материалов. Каждый из них можно оценить. Чтобы не обновлять страницу после каждого обновления решил использовать jQuery и столкнулся со следующей проблемой. Вот мой код посылки POST запроса для дальнейшей обработки оценки и изменение текущей оценки:
<script>
// Документ готов
$(document).ready(function() {
// Назначение события
$("#rate-<?=$obj->id?>").click(function() {
// Посылка запроса
$.post("/ajax/rate/",{
// Параметр передаваемый в скрипт
rate: $("#rateval-<?=$obj->id?>").val(),
id: "<?=$obj->id?>"
},function(data) {
$("#rating-<?=$obj->id?>").html(data);
$("#israting-<?=$obj->id?>").html("");
});
});
});
</script>
и этот код я повторяю на странице столько раз, сколько статей на ней находится, для того, чтобы голосование произошло именно для той статьи, за которую проголосовали. а вот один из div'ов:
Оценка:
<span id="rating-333">
<strong>0</strong> (0 голосов)
</span>
<div id="israting-333">
<select name="rate" id="rateval-333">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5" selected="selected">5</option>
</select>
<input id="rate-333" value="голосовать" type="button">
</div>
Суть вопроса: Можно ли как-то передать значение в эту функцию, которое хранится у меня в переменной $id, чтобы код функции был указан 1 раз? Голосование - это как для примера, а так - у меня там много чего ещё таким же способом работает и везде повторяется один и тот же код. Если вкратце: как мне передать значение php переменной для определённого элемента в jQuery функцию? Посмотреть, что я наворотил, можно тут: www.rap.org.ua |
или может как-то вызывать функцию через параметр к инпуту onClick? но я опятьже не совсем понимаю, как это сделать для jQuery((
|
Если я правильно понял ваш вопрос, то вам нужно делегировать свои события. В jQuery для этого есть 2 метода: delegate и live (первый предпочтительнее) или сделать ручками, что тоже довольно просто.
|
| Часовой пояс GMT +3, время: 11:17. |