在jQuery中有没有一种方法可以区分最初的点击和以后的点击?
我希望我的div在单击时从55px的高度增长到125px的高度,然后在再次单击时返回到55px。这有点过头了,所以现在当我点击它时,它会同时变大和变小 您的活动被绑定了2次。在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')的每个实例一个。单击
这就是这种行为的原因。仅绑定事件一次
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,最好将其添加到您的答案中:)