X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> jQuery скрипт голосования
Alex2017
Alex2017
Topic Starter сообщение 4.5.2010, 16:36; Ответить: Alex2017
Сообщение #1


Пишу я вот скрипт рейтинга (точнее переделываю этот - ссылка). Разница между тем скриптом что по ссылке и моим в том, что у меня на одной странице будет сразу несколько полей для голосования.
Беда у меня вот в чем:
- Cовсем запутался с toggle. Как видно из кода, срабатывает при клике через раз.
- toggle, который переключает текст на картинку во время гет запроса, с каждым кликом на новое поле срабатывает больше на 1 раз (т.е. должен сработать один раз при одном клике, а срабатывает при каждом клике на новое поле на 1 раз больше).

В каждом из блоков <div class="raiting_blank">,<div class="raiting_hover"> и <div class="raiting_votes"> содержаться картинки звезд (в бэкграунде). Блоки наложенны друг на друга.

Запихал все в один hover обработчик для того, чтобы была возможность проверить каждый на куки. Хотелось бы конечно проверять в цикле который расставляет начальное положение звездочек. Если подскажите как буду очень благодарен.

Собственно js код:

// div.raiting_votes - текущая оценка
// div.raiting_hover - звездочки при наведении при наведении
// div.block - блок в котором находится изображение и рейтинг звездочки
// в его атрибут id динамически присваивается занчение вида img_1 в котором
// цивра с четвертой строки указывает на id изображения в бд

            //Цикл в котором расставляются звездочки    
            $('.block').each(function(){
            var total_reiting =parseInt($(this).find('.raiting_info').text());
            var star_widht = total_reiting*16 + Math.ceil(total_reiting);
            $(this).find('.raiting_votes').width(star_widht);
            var id = $(this).attr('id');
            var id_arc = id.substr(4);
            });

            $('.raiting').hover(function()
            {
                    $(this).find('.raiting_votes, .raiting_hover').toggle();
                    
                    $(this).mousemove(function(e){
                        var margin_doc = $(this).offset();
                        var widht_votes = e.pageX - margin_doc.left;
                        user_votes = Math.ceil(widht_votes/17);  
                        $(this).find('.raiting_hover').width(user_votes*17)
                    });

                    $('.raiting').click(function(){
                        $(this).parents('.raiting_star').find('.raiting_info p, .raiting_info img').toggle();
                        var id = $(this).parents('.block').attr('id');
                        var id_arc = id.substr(4);    
                        var reiting = $(this).parents('.raiting_star').text();
                        reiting = parseInt(reiting);
                        $(this).parents('.raiting_star').find('.raiting_votes, .raiting_hover').toggle();
                        $(this).unbind();
                        $.cookies.set('img_'+id_arc, 'voice');
                        
                        $.get(
                        "raiting.php", {id_arc: id_arc, user_votes: user_votes},
                        function(data)
                            {
                                var obj = eval('('+data+')');
                                var path ='#img_'+id_arc+' .raiting_star';
                                $(path).find(".raiting_info p").html(obj.new_ratio+' / '+obj.num_rat);
                                $(path).find('.raiting_info img, .raiting_info p').toggle();
                                $(path).find('div.raiting_votes').width((obj.new_ratio)*17);
                            }
                        )
                    });
            },
            function()
            {
                    $(this).find('.raiting_votes, .raiting_hover').toggle();
            });



Код html:
<div class="raiting_star">
<div class="raiting">
<div class="raiting_blank"></div>
<div class="raiting_hover"></div>
<div class="raiting_votes"></div>
</div>
<div class="raiting_info"><img src="load.gif" alt="load"/><p>'.$myrow["ratio"].' / '.$myrow["num_rat"].'</p></div>
</div>



Помогите пожалуйста исправить код. Заранее благодарен.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1168 24.11.2023, 14:46
автор: alexey
Открытая тема (нет новых ответов) Скрипт поисковика видео StrongTube
3 3josoft 1561 14.8.2023, 14:45
автор: 3josoft
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44760 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Скрипт приема платежей p2p с карты на карту card2card
Скрипт приема платежей p2p с карты на карту card2card
15 zladey1986 7780 26.3.2023, 8:54
автор: Palundra
Открытая тема (нет новых ответов) Продам скрипт перевода постов и комментариев
4 Tutich 748 19.1.2023, 17:23
автор: Tutich


 



RSS Текстовая версия Сейчас: 28.3.2024, 13:49
Дизайн