jQuery悬停事件不符合UL标准?

问题描述:

我已经浏览了类似标题的大量问题,并且不能在我的生活中弄清楚发生了什么。我有一个使用KnockoutJS + jQuery的系统,它将填充一个列表并将一个类添加到一个悬停列表中,该列表将在另一个函数的地图上突出显示它。jQuery悬停事件不符合UL标准?

这里是我的HTML:

<ul data-bind="foreach: markers" class="locationListMain"> 
    <ul class="locationList"> 
     <h3 class="resultTITLE"> 
      <span data-bind="text: title"></span> 
     </h3> 
     <p class="resultLATLONG"> 
      LAT 
      <span data-bind="text: lat"></span> 
      , LONG 
      <span data-bind="text: lng"></span> 
     </p> 
    </ul> 
</ul> 

够简单。现在我想通过jQuery调用悬停事件上.locationList像这样:

$('.locationList').hover(function(){ 
    console.log('hovering'); 
    $(this).addClass('active'); 
}, function() { 
    console.log('not hovering!'); 
    $(this).addClass('active'); 
}); 

但我不能得到任何火灾。奇怪的是,如果我删除.locationList元素,并将该类添加到*别<ul>,它可以毫无问题地工作。我想知道这是否是一个CSS问题,但我也不能指出这一点。已经没有喜悦地将它移到顶部z索引。思考?将不胜感激任何帮助或见解。谢谢!

+2

这可能意味着您在运行时在DOM中可用之前将悬停事件侦听器绑定到'.locationList'。当你的JS被执行并且该元素尚不可用时,那么你将悬停事件绑定到由选择器返回的空集。你应该在元素被渲染时执行这个绑定,或者在父节点上使用事件冒泡(即'$ someParent.on('mouseenter','.locationList',function(){...})')这是在运行时出现的。 – Terry

+0

在$(document).ready下移动这个函数就完成了。万分感谢! – IkeDoud

感谢特里的评论,想通了。悬停事件侦听器在dom中可用之前尝试绑定到该元素。移动悬停功能在

$(document).ready(function(){}) 

做了诡计。