我有一个简单的javascript鼠标悬停事件来触发asp菜单上的c#click事件,它工作正常,但是当我进入menuitem时,click事件被无限次激活。我希望它只发射一次。
<script type="text/javascript">
$(".div1").mouseover(function () {
$(this).click();
})
.mouseleave(function () {
$("#Menu1").remove();
$("#Menu2").remove();
$("#Menu3").remove();
});
</script>
答案 0 :(得分:2)
您可以通过两种方式实现这一目标:
第一种方式:
$(".div1").mouseover(function () {
$(this)
.click()
.off('mouseover'); // Unbind the mouseover once we triggered the click
})
第二种方式 - 使用“.one”绑定只触发事件处理一次
$(".div1").one('mouseover', function () {
$(this).click();
})
答案 1 :(得分:0)
你可以试试这个:
var done = false;
$('.div1').mouseover(function()
{
if(!done)
{
$(this).click();
done = true;
}
});
答案 2 :(得分:0)
使用unbind jQuery的功能:
var fireClick = function () {
$(this).click();
$(this).unbind('mouseover');
};
$(".div1").mouseover(fireClick)
.mouseleave(function () {
$("#Menu1").remove();
$("#Menu2").remove();
$("#Menu3").remove();
$(this).mouseover(fireClick);
});