[英]Two jquery functions work on click, but together
因此,當我單擊一次時,它同時完成了兩個Jquery代碼...我希望當我單擊它時,它會向下滑動並保持向下,直到再次單擊為止,該怎么做?
我嘗試了click1和click2,但這並不理想。 我還嘗試給他們提供其他ID,但這不合邏輯。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideDown(1500);
});
});
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideUp(1500);
});
});
</script>
<style>
#panel, #flip {
padding: 5px;
text-align: center;
background-color: #e5eecc;
border: solid 1px #c3c3c3;
}
#panel {
padding: 50px;
display: none;
}
</style>
</head>
<body>
<div id="flip">Click to slide down panel</div>
<div id="panel">Hello world!</div>
</body>
</html>
如您所見,當您附加多個處理程序時,它們都將同時執行。 而是附加一個處理程序,然后調用slideToggle()
。
還要注意,您可能想要在其中添加對stop()
的調用,以便在快速單擊元素時動畫不會排隊。 嘗試這個:
$(document).ready(function() { $("#flip").click(function() { $("#panel").stop(true).slideToggle(1500); }); });
#panel, #flip { padding: 5px; text-align: center; background-color: #e5eecc; border: solid 1px #c3c3c3; } #panel { padding: 50px; display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="flip">Click to slide down panel</div> <div id="panel">Hello world!</div>
$(document).ready(function(){
$("#flip").click(function(){
if($('#panel').is(':visible')){
$("#panel").slideUp(1500);
}else{
$("#panel").slideDown(1500);
}
});
});
問題是有兩個單擊事件綁定到div。 相反,您需要跟蹤狀態(即isUp或isDown),並通過單擊處理程序進行操作。 像這樣:
$(document).ready(function(){
var isDown = false;
$("#flip").click(function(){
if( !isDown ){
$("#panel").slideDown(1500);
isDown = true;
} else {
$("#panel").slideUp(1500);
isDown = false;
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.