#jquery
#jquery
Вопрос:
Я использую этот плагин jQuery star rating, и я хотел бы получить название звезды, на которую я нажал. Здесь можно подправить код. Как я могу получить имя элемента, на который нажимается?
Комментарии:
1. попробуйте проверить view -> source страницы, чтобы проверить, что отображается в соответствии со звездочками для вашего плагина…
2. Я вообще не могу запустить обратный вызов, что бы я в него ни поместил…
3. Ваш
js
файл в разделе ресурсов выполняет функцию, выполнявшуюся ранее.rating()
Проверьте эту скрипку, чтобы увидеть проблему. jsfiddle.net/Hg2xF4. Я исправил ссылку на правильную скрипку
Ответ №1:
Похоже, что этот рейтинговый плагин создает свои собственные «звезды», чтобы заменить те, которые у вас есть в вашем исходном HTML, и у них нет того же name
атрибута.
Комментарии:
1. значит, я должен использовать другое имя класса? вопрос в том, как мне получить имя
Ответ №2:
С помощью jQuery:
$(document).ready(function(){
$('.star').click(function(){
alert($(this).attr('name'));
});
});
ПОДСКАЗКА: Вероятно, вам следует присвоить каждой из ваших звезд уникальный идентификатор, чтобы вы действительно знали, на что нажимается.
Комментарии:
1. на самом деле это внутри fancybox, поэтому, когда я это делаю, я получаю имя fancy box
2. Затем манипулируйте им, чтобы перейти к дочерним элементам, чтобы найти элемент, который вы ищете?
3. Извините, но он выполнял функцию раньше, и поэтому она не работала.
Ответ №3:
вот так:http://jsfiddle.net/ezmilhouse/7mY7w /
$('.star-rating-control a').live('click.app',function() {
var parent_classes = $(this).parent('div').attr('class');
console.log(parent_classes);
var arr = parent_classes.split(" ");
var rater = arr[1];
console.log( rater );
var rating = $( "." rater ".star-rating-on" ).length;
console.log(rating)
alert( rater " has a rating of " rating );
// save in database
var toBeSaved = rater '-' rating; // ex.: rater-1-4
// or
var group = rater.split("-")[1];
var stars = rating;
});
Комментарии:
1. у звезд на самом деле нет имени, но комбинация ‘rater’ (группа звезд) плюс ‘rating’ (выбранная звезда) должна помочь
2. На самом деле я хочу получить имя .. поскольку я буду использовать это как идентификатор для публикации в БД
3. вы могли бы сохранить селектор: var toBeSaved = rater ‘-‘ рейтинг; (rater-1-4)
Ответ №4:
Вот ваше решение. Скрипт, который вы включили в раздел ресурсов, выполнял функцию раньше, поэтому он дважды отклонял выполнение одной и той же функции. Ниже приведена ссылка на ваше решение. Не увидите никаких изменений вообще, и вы можете делать все, что захотите, с функциональными переменными value
и link
!
Комментарии:
1. У меня есть fancybox с фреймом I, ваше решение использует alert($(this).attr(‘name’)); в моем случае он возвращает имя fancybox… как мне выполнить итерацию вплоть до звезды?
2. Попробуйте эту скрипку. jsfiddle.net/yFzgL (Прокрутите влево и щелкните на любой звездочке, которую вы хотите!) Надеюсь, это поможет!