.hover
是不是在jQuery的事件,這是一個捷徑。基本上,它就像寫
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
曾經有過那樣的快捷與.toggle(handler1, handler2)
.click
但它已被棄用,刪除。
您需要使用一個標誌。我更喜歡在數據對象中插入該標誌。剛做這樣的事情:
$(document).ready(function() {
$(".button").click(function() {
var $this = $(this);
$this.data("click_toggle", !$this.data("click_toggle"));
$('.div1').animate({width: $this.data("click_toggle") ? '200px' : '100px'});
}
});
Fiddle
標誌也可以是您切換與toggleClass
和檢查元素與.hasClass
類的類。
$(".button").click(function() {
var $this = $(this);
$this.toggleClass('active');
$('.div1').animate({width: $this.hasClass("active") ? '200px' : '100px'});
});
Fiddle
最後,你可以使用CSS動畫。你只需切換類,並使用CSS來動畫寬度。根據儘管在你的標記,你可能需要使用不同的DOM遍歷方法,但在這裏一個例子:
HTML
<div class="div1"></div>
<button class="button">Click</button>
JS
$(".button").click(function() {
$(this).prev().toggleClass('active');
//If you have a single div1, you can use $('.div1').toggleClass('active');
});
CSS
.div1{
width:100px;
background:green;
border:1px solid red;
height:100px;
-webkit-transition : all 0.5s;
-moz-transition : all 0.5s;
-o-transition : all 0.5s;
transition : all 0.5s;
}
.div1.active{
width : 200px;
}
Fiddle
click does not have the mouseout event – 2014-10-31 12:13:59
是的,我知道,對不起沒有清楚。我想在你點擊的位置產生效果,寬度上升到200.然後再次單擊,寬度恢復正常。 – zet 2014-10-31 12:16:02
爲點擊,我可以建議你mousedown和mouseup事件;) – Mephiztopheles 2014-10-31 12:17:37