.tooltip
относится к обоим подсказкам, а не только к тем, которые вы хотите.Таким образом, вы одновременно вводите / выводите обе подсказки, когда указатель мыши вводит / покидает только одну из них.И если <?php the_ID(); ?>
генерирует один и тот же идентификатор для повышения и понижения голосов, у вас будут дубликаты идентификаторов, которые недопустимы в HTML и приведут к проблемам.
Я настоятельно рекомендую использовать классы HTML вместо name
атрибутов.Знаете ли вы, что вы можете иметь несколько классов на одном элементе?Просто разделите их пробелами ( например class="vote up"
).
Я бы также обернул все кнопки голосования в контейнере div (чтобы сгруппировать их вместе), если будет более одного наборана странице.(Таким образом, вы можете присвоить идентификатор только одному элементу и получить к нему доступ, используя .parent().attr('id')
.)
<div class="votePanel">
<div class="tooltip"></div>
<a class="vote up">Up</a>
<div class="tooltip"></div>
<a class="vote down">Down</a>
</div>
Итак, ваш код JavaScript может проверять существование этих классов.Обратите внимание, что в приведенном ниже примере кода .prev()
относится к элементу непосредственно перед:
РЕДАКТИРОВАТЬ: Я создал хорошую демонстрационную страницу показывает, насколько полезными могут быть классы для стилей CSS.
$(document).ready(function() {
$('.vote')
.mouseenter(function(e) {
var vote = $(this),
tooltip = vote.prev();
tooltip.fadeIn(200);
if(vote.hasClass('up')) tooltip.html('You like this post');
if(vote.hasClass('down')) tooltip.html('You dislike this post');
})
.mouseleave(function(e) {
$(this).prev().fadeOut(200);
});
});