Jquery鼠标输入和鼠标离开不工作li元素

时间:2016-05-25 12:29:42

标签: javascript jquery

我正在尝试使用jquery鼠标输入和鼠标离开功能。 这是我的代码: html:

    <ul class="menuList bold">
      <li id="tevee">
        <span>test</span>
      </li>
    </ul>

jquery

$(function(){
  $(".tevee").on("mouseenter",".menuList",hoverInFunction());

  $(".tevee").mouseleave(hoverOutFunction("tevee"));

});

function hoverInFunction()
{
  alert("hi")
}

function hoverOutFunction(variable)
{
  alert("test");
}

https://jsfiddle.net/tejareddy/dndvsudh/。这是我的小提琴,他们没有工作,而是他们在页面加载时触发,而不是每次我悬停在他们身上。

2 个答案:

答案 0 :(得分:2)

删除()

变化

$(function(){
  $("#tevee").on("mouseenter",".menuList",hoverInFunction());

});

为:

$(function(){
  $("#tevee").on("mouseenter",".menuList",hoverInFunction)

});

或者这样做:

    $("#tevee").on("mouseenter",".menuList",function(){
    alert("hi")
    }).on("mouseleave",".menuList", function(){   
  alert("test");
});

答案 1 :(得分:1)

首先,你的选择器对于“。on”调用是不正确的;其次,你在引用一个函数时使用括号(在这种情况下,必须将它称为没有括号的对象)。

$(function(){
    $(".menuList").on("mouseenter","li",hoverInFunction);

    $(".menuList").on("mouseleave","li",hoverOutFunction);

})

请参阅固定版本here

如果您希望将参数传递给来电,则可以使用event.data

将事件绑定到ID的原始方法不是.on就是这样,最好绑定到DOM中的更高级别对象(例如实际的menuList),然后编写一个会影响的选择器孩子们就可以了。这样您就可以获得“委托事件”,任何动态添加的项目仍然可以按您希望的方式运行。