jQuery悬停事件处理程序在单击时不处理动态内容

时间:2016-12-20 06:37:29

标签: javascript jquery

对于动态创建的内容,我使用' on'处理事件的方法。单击时可以正常工作,但不能悬停。

以下是代码:

$(document).on('click', 'li', function(){
    alert('a');
});

工作但是

$(document).on('hover', 'li', function(){
    alert('a');
});

没有。

代码错了吗?或者问题出现在我的设置上的其他原因。

2 个答案:

答案 0 :(得分:4)

"hover" pseudo-event

  

从1.9开始,不再支持事件名称字符串“hover”作为“mouseenter mouseleave”的同义词

您需要使用mouseentermouseleave事件

$(document).on('mouseenter', 'li', function(){
    alert('a');
});
$(document).on('mouseleave', 'li', function(){
    alert('a');
});

您也可以使用替代语法

$(document).on({
    mouseenter: function () {           
    },
    mouseleave: function () {           
    }}, "li"); 

答案 1 :(得分:2)

不要将“hover”伪事件名称与.hover()方法混淆

您应该使用mouseenter

$(document).on('mouseenter', 'li', function(){
    alert('a');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<ul>
  <li>sdada</li>
  </ul>