我正在尝试使用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/。这是我的小提琴,他们没有工作,而是他们在页面加载时触发,而不是每次我悬停在他们身上。
答案 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),然后编写一个会影响的选择器孩子们就可以了。这样您就可以获得“委托事件”,任何动态添加的项目仍然可以按您希望的方式运行。