Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2011, 19:16
Аватар для XomiaK
Новичок на форуме
Отправить личное сообщение для XomiaK Посмотреть профиль Найти все сообщения от XomiaK
 
Регистрация: 07.07.2011
Сообщений: 2

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

Последний раз редактировалось XomiaK, 07.07.2011 в 19:22.
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2011, 19:38
Аватар для XomiaK
Новичок на форуме
Отправить личное сообщение для XomiaK Посмотреть профиль Найти все сообщения от XomiaK
 
Регистрация: 07.07.2011
Сообщений: 2

или может как-то вызывать функцию через параметр к инпуту onClick? но я опятьже не совсем понимаю, как это сделать для jQuery((
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2011, 19:47
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Если я правильно понял ваш вопрос, то вам нужно делегировать свои события. В jQuery для этого есть 2 метода: delegate и live (первый предпочтительнее) или сделать ручками, что тоже довольно просто.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery, анимация для нескольких элементов сразу, возможно ли? Logo jQuery 21 29.05.2012 21:50
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51
$('#id') не работает для некоторых элементов tmvrus jQuery 10 12.10.2010 15:45
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 11:15
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48