Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
1

Смена класса блока при обновлении на аякс

30.01.2013, 21:54. Показов 1891. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток веб-мастера! Такой вопрос к вам поскольку только изучаю jquery и ajax коечто смог сделать.
Но столкнулся с проблемй.
Вопрос:

У меня есть голосование за комментарии рейтинг вообщем +/-
Обновляется на аяксе, на плюс и мину стоит соответственно иконка с знаками.

Вот сам скрипт обработки запроса

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$(document).ready(function(){
    $('.rate').click(function(){
        var _class = $(this).attr('class').split(' ');
        var _id = $(this).attr('id').split('_'); 
        _rating( _id[1], _class[1] );
        return false;
    });
 
});
 
function _rating(idpost, action) {
$.ajax({
        type: "POST",
        url: "commentsrating.php",
        data: "idpost=" + idpost + "&action=" + action,
        success: function(html){
            $("#rateresult-" + idpost).html(html);
            
        }
    });
}
Сам код голосования вот

HTML5
1
2
3
4
5
<div class="rating">
        <a class="rate plus" id="pid_<?=$myrow3["id"]?>" href="javascript:void(Плюс)"></a>
        <div id="rateresult-<?=$myrow3["id"]?>"><?=$myrow3['up']-$myrow3['down']?></div>
        <a class="rate minus" id="pid_<?=$myrow3["id"]?>" href="javascript:void(Минус)"></a>
    </div>
При голосовании идет и проверка по ip, хочу сделать так, чтобы после голосования иконка с плюсиком и минусиком не появилась, а тоько сам результат голосования.

Дело в том, что можно быстро несколько раз кликнуть на рейтинг, пока он сработает.

Хочу таким способом уменьшить риск повторного голосования.

Подскажите кто в курсе как это сделать? СПАСИБО!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2013, 21:54
Ответы с готовыми решениями:

Смена текста при обновлении страницы
Добрый день. Пытаюсь реализовать через java смену текста при обновлении страницы на сайте. ...

Смена текста при обновлении страницы
Добрый день. Пытаюсь реализовать через java смену текста при обновлении страницы на сайте. ...

Смена get параметра ссылки при обновлении страницы
Доброго времени суток, нужен php скрипт, который при обновлении страницы будет добавлять рандомный...

Рандобный показ блока при обновлении страницы
Доброго времени суток :) Подскажите как реализовать следующее: Есть три div блока, как бы его...

11
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
30.01.2013, 22:08 2
.one('событие', обработчик) - привязывает событие к элементу, но сработает только один раз.
Вместо
Javascript
1
$('.rate').click(function(){
Запишите
Javascript
1
$('.rate').one('click',function(){

2. Вариант - перед обращением к функции - ajax удаляйте элементы
Javascript
1
$('.rate').remove();
0
55 / 55 / 8
Регистрация: 29.08.2012
Сообщений: 175
30.01.2013, 22:26 3
Javascript
1
2
3
4
5
6
7
$('.rate').click(function(){
        var _class = $(this).attr('class').split(' ');
        var _id = $(this).attr('id').split('_'); 
        _rating( _id[1], _class[1] );
       $(this).siblings('a.rate').css('display','none');
        return false;
    });
Добавлено через 7 минут
А если уж совсем по-хорошему, обработав клик на сервере, присылаете ответ в виде объекта, который скроет кнопки, отключит обработчик..
1
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
30.01.2013, 22:50  [ТС] 4
Спасибо за отзыв, картинка с плюсиком при клике на него остается прячется только минус, а при клике на минус остается минус а + прячется. Что-то не так.
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
30.01.2013, 23:58 5
А мои варианты?
1
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
31.01.2013, 00:14  [ТС] 6
Не неподходит! Можно кликать по минусу если кликнул на плюс
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
31.01.2013, 00:46 7
А удаление всех ссылок с классом .rate (мой второй вариант)? Этот класс ведь у обеих ссылок
Javascript
1
$('.rate').remove();
0
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
31.01.2013, 10:57  [ТС] 8
Soldado, Тогда убирает у каждого комментария картинки все с +/- остается только результат, может можно както убрать только у того по которому кликнул, привязать както к нему.
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
31.01.2013, 11:19 9
У вас много блоков div class="rating" - в каждом +/- и результат голосования?
Если нет то уточните, если да, то для кликнутого элемента находим родительский блок - в родительском блоке дочерние элементы с классом .rate и удаляем их. Таким образом всё проходит только в пределах кликнутого блока
Javascript
1
$('this').parent('.rating').children('.rate').remove();
1
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
31.01.2013, 12:40  [ТС] 10
Soldado, Да каждый блок имеет ид комментария пример написан выше.

Сколько комментариев сколько и блоков. Меняется только
HTML5
1
<a class="rate plus" id="pid_<?=$myrow3["id"]?>" href="javascript:void(Плюс)"></a>
где

PHP
1
<?=$myrow3["id"]?>
Идентификатор комментария так я решил сделать дабы отсортировать комменты и рейтинги.

Добавлено через 5 минут
Цитата Сообщение от Soldado Посмотреть сообщение
У вас много блоков div class="rating" - в каждом +/- и результат голосования?
Если нет то уточните, если да, то для кликнутого элемента находим родительский блок - в родительском блоке дочерние элементы с классом .rate и удаляем их. Таким образом всё проходит только в пределах кликнутого блока
Javascript
1
$('this').parent('.rating').children('.rate').remove();
Ничего не делает вообще.

Пример где это есть вот http://aydar.pp.ua/posts.php?id=20
0
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
31.01.2013, 14:51 11
Ошибся я немного - взял this в кавычки.
Нужно
Javascript
1
$(this).parent('.rating').children('.rate').remove();
Это полностью удалит +/- со страницы. Если при этом происходят какие-то сдвиги других элементов, то можно не удалять, а делать невидимыми
Javascript
1
$(this).parent('.rating').children('.rate').css('visibility','hidden');
или так
Javascript
1
$(this).siblings('.rate').andSelf().css('visibility','hidden');
Теперь давайте пройдёмся с самого начала. Я уберу все id и прочее лишнее, что не участвует в удалении +/- И тогда html код будет приблизительно таким

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="rating">
        <a class="rate plus" href="#">+</a>
        <div>рейтинг</div>
        <a class="rate minus" href="#">-</a>
</div> 
<hr/>
<div class="rating">
        <a class="rate plus" href="#" >+</a>
        <div>рейтинг</div>
        <a class="rate minus" href="#">-</a>
</div>
<hr/>   
<div class="rating">
        <a class="rate plus" href="#">+</a>
        <div>рейтинг</div>
        <a class="rate minus" href="#">-</a>
</div>  
<hr/>
Верно?

Тогда и скрипт только для скрытия (то, что не рассматривается я убрал) будет выглядеть так
Javascript
1
2
3
4
$('.rate').click(function(){
 
 $(this).parent('.rating').children('.rate').css('visibility','hidden');
    });
Если я всё правильно смоделировал, то всё должно работать и у Вас, как работает на этой демо-странице
1
2 / 2 / 1
Регистрация: 18.01.2013
Сообщений: 34
31.01.2013, 17:07  [ТС] 12
Во клас благодарю за поддержку
Soldado, сегодня уже перечитал сколько перепробовал и ничего, а теперь то что надо. Выручил!

Добавлено через 30 минут
Теперь буду ломать голову над добавлением комментов на аякс.
0
31.01.2013, 17:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2013, 17:07
Помогаю со студенческими работами здесь

Смена текста при обновлении страницы (текст на картинке с заданными параметрами)
У меня есть несколько рабочих скриптов. Но нее знаю как их объединить. Задача стоит такая. Есть...

При обновлении блока содержимым полученным с сервера, блок дублируется внутри себя же.
$.ajax({ url: 'menu-call.php', success: function (data) { ...

Аякс смена изображений созданных на php
Доброе время суток, уважаемые форумчане! Объясните мне кто нить, почему не меняется содержание...

Смена цвета блока при клике
При клике на кнопку, в определённом блоке должен меняться и текст внутри блока на заданный в...

Смена блока при нажатии на кнопку
Всем доброго дня. Возникла вот такая проблема. Прошу помочь с решением. Есть примерно такой HTML...

Смена названия кнопки при раскрытии блока
Всем доброго времени суток. Пытаюсь сделать кнопку при нажатии на которую по средствам javascript...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru