我写了这段代码:
rem
如何添加"打开"当jQuery(document).ready(function () {
jQuery('.custom_item').on('click', function (evt) {
var $button = jQuery(this);
var $tr = $button.closest('div'); //better change here to closest
var $div = $tr.find('.detail_block'); //current div
jQuery('.detail_block').not($div).slideUp(); //hide all other div's not the current one
$div.slideToggle();
});
});
和.customer_wrap
被打开时,课程为.detail_block
?
我尝试了不同的方法,但似乎无法使其发挥作用。如果有人能帮我一把。谢谢
这里有一个小提琴示例,让您准确了解我尝试做的事情:http://jsfiddle.net/3xq7t2yh/
答案 0 :(得分:0)
如果你想查看任何.detail_block div是否可见..并在slideToggle()回调函数中使用此代码
if(jQuery('.detail_block:visible').length > 0){
// div open
}else{
// div close
}
您的完整代码
jQuery(document).ready(function(){
jQuery('.custom_item').on('click', function (evt) {
var $button = jQuery(this);
var $tr = $button.parent();//better change here to closest
var $div = $button.find('.detail_block');//current div
jQuery('.detail_block').not($div).slideUp(); //hide all other div's not the current one
$div.slideToggle(200, function(){
if(jQuery('.detail_block:visible').length > 0){
// div open
$tr.addClass('open');
}else{
// div close
$tr.removeClass('open');
}
});
});
});
另一种方式
if($div.is(':visible')){
// div open
$tr.addClass('open');
}else{
// div close
$tr.removeClass('open');
}
您的完整代码
jQuery(document).ready(function(){
jQuery('.custom_item').on('click', function (evt) {
var $button = jQuery(this);
var $tr = $button.parent();//better change here to closest
var $div = $button.find('.detail_block');//current div
jQuery('.detail_block').not($div).slideUp(); //hide all other div's not the current one
$div.slideToggle(200, function(){
if($div.is(':visible')){
// div open
$tr.addClass('open');
}else{
// div close
$tr.removeClass('open');
}
});
});
});
解释:如果任何.detail_block可见,这段代码会将类“open”添加到.customer_wrap div中。但如果它全部隐藏,它将从.customer_wrap删除类“open”