Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery.rating Рейтинг к каждой фотографии (https://javascript.ru/forum/jquery/35661-jquery-rating-rejjting-k-kazhdojj-fotografii.html)

Makkssimka 17.02.2013 20:33

jquery.rating Рейтинг к каждой фотографии
 
Подключен данный плагин, вопрос в следующем есть галерея изображений supersized, как видно из кода при наведении на блок okoloPan появляется рейтинг, который получает через ajax рейтинг соответствующего изображения, и вставляем его в то место которое отвечает за отображение закрашенных звезд. Вопрос почему после первого отображения рейтинга (правильного для данного изображения) он начинает отображаться для каждого последующего изображения?

</script>
    
    <!--Панель задач-->

<div id="okoloPan">
<div id="panelZa">

	<div class="rating">
    	  <input id="val" type="hidden" name="val" value=""/>
             <input type="hidden" name="votes" value="2"/> 
             <input type="hidden" name="vote-id" value="voteID"/>
    </div>
    <script type="text/javascript">
	$(document).ready(function() {
		$('#zagr').hover(function() {
								$('#zagr').css('background-image', 'url(images/zagr.png)');
							  },
						  function() {
							  	$('#zagr').css('background-image', 'url(images/zagr2.png)');
							  });
		
		$('#redak').hover(function() {
								$('#redak').css('background-image', 'url(images/redak.png)');
							  },
						  function() {
							  	$('#redak').css('background-image', 'url(images/redak2.png)');
							  });
		
		
			$('#panelZa').hide();
			$('#okoloPan').mouseenter(function() {
					$('#panelZa').fadeIn(1000);
					
						var slide_com =  $("li[class*='activeslide']").attr("comment");
						var com = { com : slide_com };
						 $.ajax({
						 type: 'POST',
						 url: 'action/queryReiting.php',
						 data: com,
						 success: function(data) {
								
								 $('#val').attr('value', data[0]);
						 		 $('#zag').attr('href', data[1]);
								 
						 		$('div.rating').rating({
								image: 'images/stars.png',
        						loader: 'images/ajax-loader.gif',
								url: 'rating.php'
						});
						 },
						dataType: "json"
						
						
						});
				});
		$('#okoloPan').mouseleave(function() {
			$('.rating').html('');
			$('#panelZa').fadeOut(1000);
			
		});
		});
	</script>

Makkssimka 17.02.2013 21:16

Ссылка на описание скрипта

рони 17.02.2013 21:43

Makkssimka,
Вероятно
1. одинаковые id у всех звёзд
2. функция установки звёзд неиспользует замыкание.

Makkssimka 17.02.2013 22:13

А можно как-нибудь по-подробнее, а то я делаю только первые шаги, могу код самого скрипта выложить если нужно!!!

рони 17.02.2013 22:45

Makkssimka,
Возможно запрос на сервер только для первой фотографии происходит
var slide_com вот это меняется или всегда одно и тоже?

рони 17.02.2013 22:46

Makkssimka,
смотреть на месте проще было бы

Makkssimka 17.02.2013 22:53

var slide_com через alert выводится для каждой фотографии правильное значение, проверял!

Makkssimka 17.02.2013 22:55

Дело в том что, если не наводить для первой фотографии и перейти на второю, то выведется рейтинг соответственно второй, и опять для всех. То есть значение не сбрасывается!!!

Makkssimka 17.02.2013 23:00

Когда рейтинг виден в коде создается следующий блок:
<div class="vote-wrap">
<div class="vote-hover" style="padding: 0px 4px; height: 32px; width: 160px;">
<div class="vote-block">
<div class="vote-stars" style="height: 32px; width: 160px; background: url("images/stars.png") repeat scroll left top transparent;"></div>
<div class="vote-active" style="height: 32px; width: 160px; background: url("images/stars.png") repeat scroll left bottom transparent;"></div>
</div>
</div>
<div class="vote-result">2 голоса</div>
<div class="vote-success"></div>
</div>


На месте:
<input id="val" type="hidden" name="val" value=""/>
<input type="hidden" name="votes" value="2"/> 
<input type="hidden" name="vote-id" value="voteID"/>

рони 17.02.2013 23:07

Makkssimka,
тогда возможно сам плагин непосылает запрос без клика по звёздам . проинициировали его потом он работает на автомате без клика по звёздам новую информацию незапрашивает


Часовой пояс GMT +3, время: 20:27.