我目前为jQuery幻灯片设置了以下代码.
$(document).ready(function () {
$('a#slide-up').click(function () {
$('.slide-container').slideUp();
return false;
});
$('a#slide-toggle').click(function () {
if ($('.slide-container').is(':visible')) {
$('.slide-container').slideUp();
$(this).removeClass('active');
} else {
$('.slide-container').slideDown();
$(this).addClass('active');
}
});
});
Run Code Online (Sandbox Code Playgroud)
和HTML:
<a id="slide-toggle"></a>
<div class="slide-container">
<a id="slide-up"></a>
>>content<<
</div>
Run Code Online (Sandbox Code Playgroud)
当我点击#滑动切换,类"主动"被应用到它,并div.slide容器滑落揭示的内容和另一个链接到容器滑动备份(即#滑).当我单击#slide-up时,容器会向上滑动,但#slide-toggle仍然处于"活动状态",并且应用了该类.
我想要它,这样当我点击#slide-up时,'active'类就被删除了.我怎样才能做到这一点?
-编辑-
$(document).ready(function() {
$('a#slide-up').click(function () {
$('.slide-container').slideUp(function(){
$('#slide-toggle').removeClass('active');
});
return false;
});
$('a#slide-toggle').click(function() {
if ($('.slide-container').is(':visible')) {
$('.slide-container').slideUp(function() {
$(this).removeClass('active');
}
})
else {
$('.slide-container').slideDown();
$(this).addClass('active');
}
});
});
Run Code Online (Sandbox Code Playgroud)
只需删除#slide-up按钮处理程序中的类:
$('a#slide-up').click(function () {
$('.slide-container').slideUp();
$('#slide-toggle').removeClass('active');
return false;
});
Run Code Online (Sandbox Code Playgroud)
或者如果您希望它等到动画完成,请在回调中执行:
$('a#slide-up').click(function () {
$('.slide-container').slideUp(function(){
$('#slide-toggle').removeClass('active');
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
关于你的评论:
$('a#slide-toggle').click(function() {
// keep a reference to the slide-toggle element
var slideToggle = this;
if ($('.slide-container').is(':visible')) {
$('.slide-container').slideUp(function() {
$(slideToggle).removeClass('active'); // remove class from slide-toggle
}); // <-- moved the closing ) to here
} // <-- instead of here
else {
$('.slide-container').slideDown();
$(slideToggle).addClass('active'); // add class to slide-toggle
}
});
Run Code Online (Sandbox Code Playgroud)