Jquery 检查是否发生了第一个事件,但第二个事件没有发生';T
我有一个代码,如果我用鼠标输入li元素,它的高度会增加,其他两个lis的高度会降低Jquery 检查是否发生了第一个事件,但第二个事件没有发生';T,jquery,Jquery,我有一个代码,如果我用鼠标输入li元素,它的高度会增加,其他两个lis的高度会降低 $("li").mouseover(function(){ var thisName = $(this).attr("name"), lis = []; lis[0] = $("li[name=first]"); lis[1] = $("li[name=second]"); lis[2] = $("l
$("li").mouseover(function(){
var thisName = $(this).attr("name"),
lis = [];
lis[0] = $("li[name=first]");
lis[1] = $("li[name=second]");
lis[2] = $("li[name=third]");
$(this).animate({
height: "200px"
});
for(i=0; i<lis.length; i++) {
if(lis[i].attr("name")!=thisName) {
lis[i].animate({
height: "50px"
});
};
};
});
$(“li”).mouseover(函数(){
var thisName=$(this.attr(“name”),
lis=[];
lis[0]=$(“li[name=first]”);
lis[1]=$(“li[name=second]”);
lis[2]=$(“li[name=third]”);
$(此)。设置动画({
高度:“200px”
});
对于(i=0;i),可以使用.stop(true)停止动画
$("li").mouseover(function () {
var thisName = $(this).attr("name"),
lis = [];
lis[0] = $("li[name=first]");
lis[1] = $("li[name=second]");
lis[2] = $("li[name=third]");
//use .stop(true)
$(this).stop(true).animate({
height: "200px"
});
for (i = 0; i < lis.length; i++) {
if (lis[i].attr("name") != thisName) {
lis[i].stop(true).animate({
height: "50px"
});
};
};
});
还可以使用.hover()注册mouseenter和mouseleave处理程序,如
var $lis = $("li").hover(function () {
//use .stop(true)
$(this).stop(true).animate({
height: "200px"
});
$lis.not(this).stop(true).animate({
height: "50px"
});
}, function () {
$lis.stop(true).animate({
height: "100px"
});
});
演示:这方面的代码在哪里,你所发布的只是mouseover
,而mouseenter
和mouseleave
?也许你可以提供一个JSFIDLE来复制你的问题第一个答案很完美:)哇!很多thanx!帮助很大。嗯,你能不能把它建立起来,它只会影响名为“第一”、“第二”、“第三”的li元素?因为现在$lis=$(“li”)正在选择所有li元素。@user3021198更改var$lis=$(“li”).hover(函数(){
到var$lis=$(“li[name]”)。hover(函数(){
$(“li[name=first],li[name=second],li[name=third]>。悬停(函数()正常工作:)
var $lis = $("li").hover(function () {
//use .stop(true)
$(this).stop(true).animate({
height: "200px"
});
$lis.not(this).stop(true).animate({
height: "50px"
});
}, function () {
$lis.stop(true).animate({
height: "100px"
});
});