【发布时间】:2014-04-11 11:43:40
【问题描述】:
如果您单击类“可点击”的元素,则会出现一个 div“显示”。 “显示” div 的高度不相等。 根据这个 div 的高度,另一个 div“容器”的上边距应该适应。 但是,这适用于第一次点击,但不适用于连续点击:从第二次“可点击”开始,始终需要两次点击:第一次点击将加载内容,第二次点击将调整上边距。
$(document).ready(function(){
var display = $("#display");
var clickable = $(".clickable");
display.hide();
clickable.click(function(){
var clickableid = clickable.attr('id');
$.ajax({
cache: false,
type: 'get',
url: 'process.php?id=' + clickableid,
dataType: 'html',
success: function(content) {
$('#display').load('process.php?id=' + clickableid);
display.show(function(){
var newmargin = $("#display").height();
$('#container').css({"margin-top": + newmargin});
});
}
});
});
代替:
display.show(function(){
var newmargin = $("#display").height();
$('#container').css({"margin-top": + newmargin});
});
我也试过了:
display.show()
var newmargin = $("#display").height();
$('#container').css({"margin-top": + newmargin};
不幸的是没有用:只是出现的方式不同。 有人有想法吗?
【问题讨论】:
-
出现差异是什么意思?你能解释一下吗?
-
@C-link 我更正了它:如果没有该功能,div 会立即出现,使用 show(function) 等会有更多的动画。
-
我最终得到了这个代码:
$(document).ready(function(){ var display = $("#display"); var clickable = $(".clickable"); display.hide(); clickable.click(function(){ display.hide(); var clickableid = clickable.attr('id'); $('#display').load('process.php?id=' + clickableid); display.show(function() { var newmargin = $("#display").height(); $('#container').css({"margin-top": newmargin}); }); });显然我首先需要通过隐藏它来重新初始化“显示”div。现在,下面的“容器”div 的上边距只需单击即可适应。
标签: jquery css function event-handling show