Я бы, наверное, немного изменил:
$('p').hover(function() {
$('<span class="both">BOOKMARK THIS</span>')
.appendTo(this)
.animate({opacity: 1.0})
}, function(){
var both = $(this).find('span.both');
both.fadeOut(600, function(){
both.remove()
});
});
Причина, по которой я использовал class
вместо id
, заключается в том, что когда вы выходите из одного абзаца и вводите следующий, вы временно получаете два из этих span
s & mdash; тот, который исчезает в старом абзаце, и тот, который добавлен в новый. Наличие двух элементов с одинаковым id
недопустимо и чревато опасностью.
Возможно, я бы также отменил анимацию раньше, если вернусь к тому же абзацу:
$('p').hover(function() {
$(this).find('span.both').stop().remove(); // Stop and remove it if it's there
$('<span class="both">BOOKMARK THIS</span>')
.appendTo(this)
.animate({opacity: 1.0})
}, function(){
var both = $(this).find('span.both');
both.fadeOut(600, function(){
both.remove()
});
});