我有同一个班级的div`:
<div id="1" class="same">..</div>
<div id="2" class="same">..</div>
<div id="3" class="same">..</div>
我附上了eventhandler all div:
$(".same").live({mouseenter : function{ /*code*/ },mouseout: function{ /*code*/ }})
现在我的问题是当mouseenters到div (id="1")
时,mouseenter函数的代码将执行3次可能是因为有3个div与class="same"
但我希望它只执行一次而没有用id附加事件。这可能吗?
答案 0 :(得分:1)
事件不会绑定三次。但是当你移动到下一个div时,你可能会得到一个div的鼠标输入,你可以将鼠标移出这个潜水和其他div的mouseenter。
进入第一个div,然后进入第二个激活三个事件
第二个div的mouseenter
由于脚本没有为我执行,因此在关键字函数后添加括号我做了一点改动。
在
$(".same").live({mouseenter : function{ /*code*/ },mouseout: function{ /*code*/ }})
在
$(".same").live({mouseenter : function(){ /*code*/ },mouseout: function(){ /*code*/ }})
您可以执行此代码以查看正在发生的事情
$(".same").live(
{
mouseenter :
function()
{
alert(" mouseenter >>Current Div ID = "+ this.id);
},
mouseout:
function()
{
alert("mouseout >>Current Div ID = "+ this.id);
}
}
);
答案 1 :(得分:1)
我不确定,但这应该会有所帮助:
busy = false;
$(".same").live(
{mouseenter : function ()
{
if(busy==false){busy = true; /*code*/}
},
mouseout: function ()
{
if(busy==true){/*code*/ busy = false;}
}
});