我有以下代码,它向下滑动,但不是向上滑动。请你帮我找出错误,如果有更好的方法,我尝试了slideToggle,但这并不能检查元素的状态,因为使用hide and show你可以检查$('#my_div').is(':hidden')。
下面是我的代码:
$("a.advanced_search_toggle").click(function() {
if ($("#advanced_search_box").hasClass('closed')) {
$("#advanced_search_box").slideDown(function(){
$("a.advanced_search_toggle").text('Simple Search');
$("a.advanced_search_toggle").removeClass('down_arrow');
$("a.advanced_search_toggle").addClass('up_arrow')
$("a.advanced_search_toggle").removeClass('closed');
$("a.advanced_search_toggle").addClass('open');
});
} else {
$("#advanced_search_box").slideUp(function(){
$("a.advanced_search_toggle").text('Advanced Search');
$("a.advanced_search_toggle").removeClass('up_arrow');
$("a.advanced_search_toggle").addClass('down_arrow');
$("a.advanced_search_toggle").removeClass('open');
$("a.advanced_search_toggle").addClass('closed');
});
}
return false;
}); 请注意,默认情况下,我添加了一个closed to #advanced_search_box类
发布于 2012-07-09 01:56:44
您正在尝试修改链接的属性,而不是元素的属性。此外,通过将对象分配给变量来cache您的对象,这有助于简化引用和优化。尝试以下操作:
$("a.advanced_search_toggle").click(function() {
var link = $(this);
var box = $("#advanced_search_box");
if (box.hasClass('closed')) {
box.slideDown(function(){
link.text('Simple Search').removeClass('down_arrow').addClass('up_arrow');
box.removeClass('closed').addClass('open');
});
} else {
box.slideUp(function(){
link.text('Advanced Search').removeClass('up_arrow').addClass('down_arrow');
box.removeClass('open').addClass('closed');
});
}
return false;
});演示:http://jsfiddle.net/m9XMn/
发布于 2012-07-09 01:47:20
您需要将.removeClass调用改为"#advanced_search_box“而不是"a.advanced_search_toggle”。它不会删除要检查的元素上的类名,因此不会向上滑动,只会向下滑动。
$("a.advanced_search_toggle").click(function() {
if ($("#advanced_search_box").hasClass('closed')) {
$("#advanced_search_box").slideDown(function(){
$("a.advanced_search_toggle").text('Simple Search');
$("a.advanced_search_toggle").removeClass('down_arrow');
$("a.advanced_search_toggle").addClass('up_arrow')
$(this).removeClass('closed');
$(this).addClass('open');
});
} else {
$("#advanced_search_box").slideUp(function(){
$("a.advanced_search_toggle").text('Advanced Search');
$("a.advanced_search_toggle").removeClass('up_arrow');
$("a.advanced_search_toggle").addClass('down_arrow');
$(this).removeClass('open');
$(this).addClass('closed');
});
}
return false;
});https://stackoverflow.com/questions/11385216
复制相似问题