在jQuery中有没有一种方法可以区分最初的点击和以后的点击?

在jQuery中有没有一种方法可以区分最初的点击和以后的点击?,jquery,click,jquery-animate,Jquery,Click,Jquery Animate,我希望我的div在单击时从55px的高度增长到125px的高度,然后在再次单击时返回到55px。这有点过头了,所以现在当我点击它时,它会同时变大和变小 您的活动被绑定了2次。 $('div')的每个实例一个。单击 这就是这种行为的原因。仅绑定事件一次 var i = 0; $('div').click(function() { i++; $(this).animate({ height: i%2 ===0 ? '125px' : '55px' }); })

我希望我的div在单击时从55px的高度增长到125px的高度,然后在再次单击时返回到55px。这有点过头了,所以现在当我点击它时,它会同时变大和变小 您的活动被绑定了2次。

$('div')的每个实例一个。单击

这就是这种行为的原因。仅绑定事件一次

var i = 0;
$('div').click(function() {
    i++;
    $(this).animate({
        height: i%2 ===0 ? '125px' : '55px'
    });
});

您的活动被绑定了2次。

$('div')的每个实例一个。单击

这就是这种行为的原因。仅绑定事件一次

var i = 0;
$('div').click(function() {
    i++;
    $(this).animate({
        height: i%2 ===0 ? '125px' : '55px'
    });
});
您可以在该特定元素的单个“单击”事件处理程序中调用该函数

我做了一个例子。 HTML

<body>
    <div class="small">
        Toggle me!
    </div>
</body>
Javascript(jQuery)

注意:“duration”到“toggleClass()”(一个整数)要设置类之间转换的动画,您还需要使用jQuery UI库。

您可以在单个“click”事件处理程序中为该特定元素调用该函数

我做了一个例子。 HTML

<body>
    <div class="small">
        Toggle me!
    </div>
</body>
Javascript(jQuery)

注意:“duration”到“toggleClass()”(一个整数)要设置类之间转换的动画,还需要使用jQuery UI库。

$('div')。单击(函数(){
$(此)。设置动画({
高度:$(this).height()<125?125:55
});
});
包含JavaScript
jQuery
)和更好的CSS方法:

$('div')。单击(函数(){
$(此)。设置动画({
高度:$(this).height()<125?125:55
});
});
包含JavaScript
jQuery
)和更好的CSS方法:

更好的方法可能是使用CSS类来切换高度和管理过渡:

一些HTML:

<div class="toggle-div"></div>
现在是一些用于单击的javascript:

$('.toggle-div').on('click', function () {
    $(this).toggleClass('taller');
});

jsiddle演示此方法:

更好的方法可能是使用CSS类来切换高度和管理过渡:

一些HTML:

<div class="toggle-div"></div>
现在是一些用于单击的javascript:

$('.toggle-div').on('click', function () {
    $(this).toggleClass('taller');
});

JSFiddle演示了这种方法:

对于美学特征之类的东西(比如
高度
),无论如何都应该使用CSS来操纵它。事实证明,它还使jQuery方面的工作变得更加容易,因为您可以只打开或关闭一个类,例如

div {
    height : 55px;
}
div.state-enabled {
    height : 125px;
}

// jQuery
$('div').on('click', function () {
     $(this).toggleClass('state-enabled', 'fast');
});

请注意,没有动画功能的
.toggleClass()
在jQuery中是现成的<带有动画的code>.toggleClass()
来自于在jQuery UI库中添加。这为您解决了
高度
需要设置动画,并自动将适当的动画调用连接到适当的属性上。

对于美学特征(如
高度
)之类的东西,您应该使用CSS来操作它。事实证明,它还使jQuery方面的工作变得更加容易,因为您可以只打开或关闭一个类,例如

div {
    height : 55px;
}
div.state-enabled {
    height : 125px;
}

// jQuery
$('div').on('click', function () {
     $(this).toggleClass('state-enabled', 'fast');
});

请注意,没有动画功能的
.toggleClass()
在jQuery中是现成的<带有动画的code>.toggleClass()
来自于在jQuery UI库中添加。这为您解决了
高度
需要设置动画的问题,并自动将适当的动画调用连接到适当的属性上。

谢谢!CSS方法是一种更好的方法+1个很好的解决方案,使用CSS,最好将其添加到您的答案中:)谢谢!CSS方法是一种更好的方法+1个不错的解决方案,使用CSS,最好将其添加到您的答案中:)