我有一个div包含一个包裹在div中的表,所以父子关系,我在点击文本标题时显示和隐藏div(表格显示:最初隐藏)。我的逻辑工作,我可以让表显示和隐藏点击,但是当我传递隐藏的毫秒值时,表仍然会立即消失。这是我的结构。
var ctdown = false;
jQuery(".table-dropdown").click(function () {
var table_height = $(".table-dropdown div").show().height()+20;
$(".table-dropdown div").hide();
if (ctdown) {
jQuery(this).animate({
height: "20px"
}, 500, function () {
$(".table-dropdown div").hide(1000000);
});
}
else {
jQuery(this).animate({
height: table_height
}, 500, function () {
});
jQuery(".table-dropdown div").show();
}
ctdown = !ctdown;
});
我输入100000只是为了测试它是否真的在做任何事情,而事实并非如此。有什么建议?这里有一些基本的原则吗?谢谢!
UPDATE! 我从帖子中的标记答案中得出了答案,而另一位成员的答案因某种原因被删除了。这是我的最终解决方案。感谢所有帮助的人,非常感谢!
var ctdown = false;
$(".table-dropdown").click(function () {
if (ctdown) {
$(this).animate({
height: "20px"
}, 500, function () {
$("div", this).hide().fadeOut(500);
});
}
else {
var table_height = $("div", this).show().height()+20;
$("div", this).hide();
$(this).animate({
height: table_height
}, 500, function () {
});
$("div", this).show();
}
ctdown = !ctdown;
});
答案 0 :(得分:3)
在您的代码中,这可能是:
function fill () {
var array = [];
for (var index = 0, number = arguments[index][0];
index < arguments.length && number <= arguments[index][1];
index++ && number++) {
array.push(number);
}
return array;
};
/* Use */
var keys = fill([1, 10], [32, 34]);
/* Output */
[1, 1]
答案 1 :(得分:2)
您是否尝试删除隐藏此块中div的行?
var table_height = $(".table-dropdown div").show().height()+20;
$(".table-dropdown div").hide();
我已经测试过这个.hide会隐藏div并忽略你的第二个.hide()
编辑1 - 添加的示例:https://jsfiddle.net/9eoq22ts/9/