Одна функция для нескольких элементов
Добрый день!
Я - 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, время: 04:00. |