jquery保证金赢得';第一次点击就不能适应
如果单击类为“clickable”的元素,将显示一个div“display”。 “显示”div的高度不相等。 根据该div的高度,另一个div“container”的上边距应进行调整。 但是,这在第一次单击时有效,但不适用于连续单击:从第二次“可单击”开始,始终需要两次单击:第一次单击将加载内容,第二次单击将调整顶部边距jquery保证金赢得';第一次点击就不能适应,jquery,css,function,event-handling,show,Jquery,Css,Function,Event Handling,Show,如果单击类为“clickable”的元素,将显示一个div“display”。 “显示”div的高度不相等。 根据该div的高度,另一个div“container”的上边距应进行调整。 但是,这在第一次单击时有效,但不适用于连续单击:从第二次“可单击”开始,始终需要两次单击:第一次单击将加载内容,第二次单击将调整顶部边距 $(document).ready(function(){ var display = $("#display"); var clickable = $(".clickable
$(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};
不幸的是,没有用:只是出现的方式不同。
有人有想法吗?我无法评论,所以我必须提供一个答案,但事实并非如此,但我认为您希望查看
.done(function(data){…})
成功并不一定意味着DOM完成了对get结果的渲染
这些方法接受一个或多个函数参数,这些参数在$.ajax()请求终止时被调用。这允许您在单个请求上分配多个回调,甚至在请求完成后分配回调。(如果请求已完成,则立即触发回调。)
另外,我对调用.load()
时发出的第二个请求感到困惑,这是一种同步方式,可以精确地执行$.ajax
请求正在执行的操作(?)
编写css()方法的正确方法是不使用加号,例如:
$(“#container”).css({“margin top”:newmargin};
显示different是什么意思?你能解释一下吗?@C-link我更正了它:没有函数,div会立即出现,使用show(function)还有更多的动画。我以以下代码结束:$(文档).ready(函数(){var display=$(“#display”);var clickable=$(“.clickable”);display.hide();clickable.click(函数(){display.hide();var clickableid=clickable.attr('id');$(“#display”).load('process.php?id='+clickableid));display.show(函数()){var newmargin=$(“#display”).height();$(“#container”).css({“margin top”:newmargin});});
显然我首先需要通过隐藏“display”div来重新初始化它。现在是“container”的上边缘下面的div只需点击一次就可以修改。谢谢你的建议,@Saxeen。但是对执行没有影响。谢谢你的建议,@Al-DeLuca。