Ну да хватит лирики а я продолжаю.
Вот что получилось в итоге.
jQ(document).ready(function () {
jQ('.rating').each(function() {
var rating = jQ(this).text();
rating5 = rating != 0 ? (rating - (rating % 20)) / 20 : 0;
var li = jQ(this).next('.star-rating').find('.star' + rating5).parent();
li.attr('class', 'current');
li.css('width', rating + 'px');
});
Тут все верно делает. Подсвечивает звездочки индивидуально. Только я вот тут
rating5 = rating != 0 ? (rating - (rating % 20)) / 20 : 0;
сделал переменную rating5 глобальной для.....
jQ("a[href^=#]").click(function(){
var num = jQ(this).attr("class");
var id = jQ(this).attr("span");
jQ.ajax({
url: "saverating.php",
type: "POST",
data: {rating: num, id: id},
success: function (newRating) {
alert(newRating);
}
});
Вот так отправляет значения и вот тут его принимает и показывает
alert(newRating);
Тут все верно, но как сделать так, что бы звездочки подсвечивались на автомате. То есть делаю так
jQ("a[href^=#]").click(function(){
var num = jQ(this).attr("class");
var id = jQ(this).attr("span");
jQ.ajax({
url: "saverating.php",
type: "POST",
data: {rating: num, id: id},
success: function (newRating) {
var li = jQ('.rating').next('.star-rating').find('.star' + rating5).parent();
li.attr('class', 'current');
li.css('width', newRating + 'px');
}
});
И он сразу подсвечивает все то значение, кот. я выбрал, только у все фоток. Как быть?
Спустя 43 минуты, 30 секунд m4a1fox написал(а):
Допустим мы можем объявить id глобальным. То есть достучаться до него из функции ajax. Но как сделать подсветку только той фото id кот. равен id переданному в ajax?
Спустя 1 час, 8 минут, 7 секунд m4a1fox написал(а):
success: function (newRating) {
if(jQ('.id').text() == id){
var li = jQ('.rating').next('.star-rating').find('.star' + rating5).parent();
li.css('width', newRating + 'px');
}
А если так? Ошибок не показывате firebug но и рейтинг не обновляется! ТОлько через Ф5
Спустя 1 час, 30 минут, 44 секунды m4a1fox написал(а):
В последнем посте, суть ajax'a теряется. Динамики - нет! Вариант - отпадает!
[MOD]Пользуйся редактированием сообщений, не нужно писать 100500 постов подряд.Invis1ble[/EX]
OK!
Спустя 1 час, 37 минут, 1 секунда (10.09.2011 - 00:51) Invis1ble написал(а):
Изложи проблему наиболее кратко и по существу, но в то же время чтоб было понятно, о чем ты пишешь.
Что конкретно не работает (работает некорректно), каков ожидаемый результат.
Что конкретно не работает (работает некорректно), каков ожидаемый результат.
Спустя 4 минуты, 53 секунды (10.09.2011 - 00:56) m4a1fox написал(а):
Хорошо! Суть такова. Есть пост запрос ajax. Он возвращает определенный результат и зразу задает выделенние для рейтинга.
Проблема заключается в том, как мне сделать выделение кол-ва звездочек именно на той фотке по кот. был щелчок имея GLOBAL ID фотки? На данный момент он подсвечивает звездочки на всех фотках, но когда Ф5 нажимаю, то все нормально, рейтинг на той фотки где нажимал увеличился или уменьшился, а у других остался прежним.
jQ("a[href^=#]").click(function(){
var num = jQ(this).attr("class");
var id = jQ(this).attr("span");
jQ.ajax({
url: "saverating.php",
type: "POST",
data: {rating: num, id: id},
success: function (newRating) {
var li = jQ('.rating').next('.star-rating').find('.star' + rating5).parent();
li.attr('class', 'current');
li.css('width', newRating + 'px');
}
});
Проблема заключается в том, как мне сделать выделение кол-ва звездочек именно на той фотке по кот. был щелчок имея GLOBAL ID фотки? На данный момент он подсвечивает звездочки на всех фотках, но когда Ф5 нажимаю, то все нормально, рейтинг на той фотки где нажимал увеличился или уменьшился, а у других остался прежним.
Спустя 3 минуты, 26 секунд (10.09.2011 - 00:59) Invis1ble написал(а):
Покажи html с которым работает этот код
Спустя 6 минут, 32 секунды (10.09.2011 - 01:06) m4a1fox написал(а):
Была такая идея
Но с треском провалилась :(
Invis1ble
jQ("a[href^=#]").click(function(){
var num = jQ(this).attr("class");
id = jQ(this).attr("span");
jQ.ajax({
url: "saverating.php",
type: "POST",
data: {rating: num, id: id},
success: function (newRating) {
var li = jQ('.id' + id).next('.rating').next('.star-rating').find('.star' + rating5).parent();
li.css('width', newRating + 'px');
}
});
});
Но с треском провалилась :(
Invis1ble
<div id="example">
<table border="0" width="100%" cellpadding="0" cellspacing="0" ><tr><td>
<a rel="example_group" href="./file/pLEzM2Qd8YTSs34O.jpg" title="ХЗ!"><img alt="" src="./file/pLEzM2Qd8YTSs34O_S.jpg" /></a>
<span class="id11" style="display:none">11</span>
<span class="rating" style="display:none">33.3333333333</span>
<ol class="star-rating" style="margin-top: -25px;">
<li><a href="#" id="star1" class="star1" span="11">Ужасно</a></li>
<li><a href="#" id="star2" class="star2" span="11">Плохо</a></li>
<li><a href="#" id="star3" class="star3" span="11">Нормально</a></li>
<li><a href="#" id="star4" class="star4" span="11">Хорошо</a></li>
<li><a href="#" id="star5" class="star5" span="11">Отлично</a></li>
</ol>
</td><td>
<a rel="example_group" href="./file/CSpUtPRBlSc0hTJO.jpg" title="ХЗ!"><img alt="" src="./file/CSpUtPRBlSc0hTJO_S.jpg" /></a>
<span class="id9" style="display:none">9</span>
<span class="rating" style="display:none">50</span>
<ol class="star-rating" style="margin-top: -25px;">
<li><a href="#" id="star1" class="star1" span="9">Ужасно</a></li>
<li><a href="#" id="star2" class="star2" span="9">Плохо</a></li>
<li><a href="#" id="star3" class="star3" span="9">Нормально</a></li>
<li><a href="#" id="star4" class="star4" span="9">Хорошо</a></li>
<li><a href="#" id="star5" class="star5" span="9">Отлично</a></li>
</ol>
</td><td>
<a rel="example_group" href="./file/bpmPU7a5zODeM9Kx.jpg" title="ХЗ!"><img alt="" src="./file/bpmPU7a5zODeM9Kx_S.jpg" /></a>
<span class="id10" style="display:none">10</span>
<span class="rating" style="display:none">50</span>
<ol class="star-rating" style="margin-top: -25px;">
<li><a href="#" id="star1" class="star1" span="10">Ужасно</a></li>
<li><a href="#" id="star2" class="star2" span="10">Плохо</a></li>
<li><a href="#" id="star3" class="star3" span="10">Нормально</a></li>
<li><a href="#" id="star4" class="star4" span="10">Хорошо</a></li>
<li><a href="#" id="star5" class="star5" span="10">Отлично</a></li>
</ol>
</td></tr></table>
</div>
Спустя 33 минуты, 59 секунд (10.09.2011 - 01:40) Invis1ble написал(а):
Я тебе в прошлой теме уже 2 раза писал, что id должен быть уникальным, а ты опять делаешь дубли.
Так попробуй:
Так попробуй:
success: function(newRating) {
$(this).parent().css('width', newRating + 'px')
}
Спустя 6 минут, 18 секунд (10.09.2011 - 01:46) m4a1fox написал(а):
Invis1ble
Цитата |
2 раза писал, что id должен быть уникальным |
Так там и нет дубликатов! Или есть? Просто я не вижу!
Обновляет только после Ф5. Не хочет он как то сам обновляться.
Спустя 3 минуты, 56 секунд (10.09.2011 - 01:50) Invis1ble написал(а):
m4a1fox
Цитата |
Просто я не вижу! |
это печально....
Цитата |
id="star1" |
Цитата |
id="star1" |
Цитата |
id="star1" |
Цитата |
id="star2" |
Цитата |
id="star2" |
Цитата |
id="star2" |
и т.д.
Спустя 3 минуты, 5 секунд (10.09.2011 - 01:53) m4a1fox написал(а):
Invis1ble
Ну так они ж в одном блоке.
Ну так они ж в одном блоке.
Спустя 1 минута, 31 секунда (10.09.2011 - 01:55) Invis1ble написал(а):
Цитата |
Ну так они ж в одном блоке. |
и в одной DOM'е
Цитата |
Обновляет только после Ф5. Не хочет он как то сам обновляться. |
а так:
jQ("a[href^=#]").click(function(){
var num = jQ(this).attr("class");
id = jQ(this).attr("span");
a = $(this)
jQ.ajax({
url: "saverating.php",
type: "POST",
data: {rating: num, id: id},
success: function(newRating) {
a.parent().css('width', newRating + 'px')
}
});
});
Спустя 1 минута, 28 секунд (10.09.2011 - 01:56) m4a1fox написал(а):
Invis1ble
Цитата |
и в одной DOM'е |
Поправил! На работу скрипта они все ж не влияли!
Цитата |
а так: |
Аналогично!