Функция размытия удаляет текст с этикетки. Вы можете остановить это, просто используя оператор if
.
if ( type[0].data != '' ) {
$('.hover-test').html(tip[0].data);
}
Скрипт: http://jsfiddle.net/tvn4Ldmn/10/
Если вы хотите, чтобы значение оставалось только после того, как вы нажали, вам также необходимо проверить, нажали ли вы.
if ( type[0].data != '' || has_clicked == false ) {
$('.hover-test').html(tip[0].data || '');
}
Примечание. has_clicked
— это всего лишь пример. Логика «щелчка» не включена в ваш код или скрипку. Вы можете посмотреть на звездочки для класса star-rating-on
, чтобы определить, щелкнул ли пользователь. Я верю, что это сработает.
Обновление (на основе комментария автора)
Если вы хотите, чтобы в тексте сохранялось значение, на которое первоначально нажали, вам нужно использовать переменную. Переменная должна быть «откатом», о котором говорилось выше (заменяя пустую строку, ''
).
Вам нужна переменная, которая входит в область действия других ваших функций. Вы можете использовать глобальную переменную (window.variable_name
), но это не очень удобно. Вы также можете просто поместить переменную перед другими функциями. Прочтите о области видимости переменных для получения дополнительной информации.
var selected_rating = '';
Затем используйте эту переменную в качестве «отката», когда текст при наведении не отображается. Пока вы не нажмете на звездочку, поле будет пустым.
$('.hover-test').html(tip[0].data || selected_rating);
Наконец, пара функций, которые запомнят, на какую звезду ранее нажимали, а также поддержку кнопки сброса.
// Reset the selected rating:
$('.rating').on('click', 'div.rating-cancel', function() {
selected_rating = '';
$('.hover-test').html('');
});
// Remember a rating when it is selected:
$('.rating').on('click', 'div.star-rating', function(e) {
selected_rating = jQuery(this).find('a').attr('title');
$('.hover-test').html(selected_rating);
});
Скрипт/демонстрация: http://jsfiddle.net/tvn4Ldmn/16/
person
Radley Sustaire
schedule
20.08.2014