Событие JQuery hover mouseenter запущено, хотя я покинул div

У меня есть 2 div (s), как определено ниже:

<div id="feedsInfo"></div>  

<div id="feeds">
<ul>
<li><p id="a">A</p></li>
<li><p id="b">B</p></li>
<li><p id="c">C</p></li>
</ul>
</div> 

и я добавляю событие наведения следующим образом:

$("#feeds p").filter(function(){  
 return ($(this).attr('id') == 'a' || 
                    $(this).attr('id') == 'b' || 
                    $(this).attr('id') == 'c' 
                )})  
.hover(function(e){  
$(this).css('background-color','red');  
 $('#feedsInfo').css('background-color','red');

      << dynamically append <a href> tags to div id='feedsInfo' >>

},function(e){  
$("#feedsInfo").children().remove();    
  $(this).css('background-color','blue');   
  $('#feedsInfo').css('background-color','blue');  
}):

Проблема в том, что я все еще могу видеть теги ссылок в div id='feedsInfo', если я просто машу над списками 'A' 'B' 'C' (мышь сейчас находится где-то еще. Короче говоря, она должна запускать событие mouseleave) даже если они меняют цвет с красного на синий и с синего на красный при событиях mouseenter или mouseleave.

Пожалуйста, объясните, как я могу удалить теги ссылок из div, когда я просто просматриваю список, а мышь не зависает над списками «A», «B», «C».


person user801573    schedule 16.06.2011    source источник


Ответы (2)


Попробуй это:

$("#feedsInfo").html('');
person istvan.halmen    schedule 16.06.2011
comment
Не повезло. Все та же проблема. - person user801573; 17.06.2011

Было бы полезно знать, какой браузер/версию и какую версию jQuery вы используете.

Вместо этого попробуйте $("#feedsInfo").empty();.

Если это не сработает, возможно, вы столкнулись с причудой браузера, характерной для вашей ситуации. В качестве обходного пути вы можете попробовать поместить обработчик событий hover в родительский контейнер тегов p, который очистит блок #feedsInfo. Мышь обычно входит в родительский узел после того, как покидает узлы p, так что в вашем случае это может хорошо сработать.

person jimp    schedule 16.06.2011
comment
Я использую jQuery v 1.5.2 и браузеры Mozilla 3.0.1 и IE 7. Я пытался подключить события наведения к родительскому контейнеру тегов p, но безуспешно. Происходит какое-то событие? - person user801573; 17.06.2011
comment
Это может быть проблема всплытия событий, но было бы очень сложно понять это без живого тестирования. У вас есть веб-сайт, где мы могли бы увидеть это в действии? Кроме того, как выглядит код для динамического добавления тегов ‹a href› к div id='feedsInfo' ››? Ответ может заключаться в том, как вы вставляете теги привязки. - person jimp; 17.06.2011
comment
Вот код для ‹‹ динамического добавления тегов ‹a href› к div id='feedsInfo' ›› $('‹a/›',{href: entry.link, target: '_blank', text: entry.title }).appendTo($('‹li/›').appendTo($('#feedsInfo'))); - person user801573; 22.06.2011