Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery保证金赢得';第一次点击就不能适应_Jquery_Css_Function_Event Handling_Show - Fatal编程技术网

jquery保证金赢得';第一次点击就不能适应

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

如果单击类为“clickable”的元素,将显示一个div“display”。 “显示”div的高度不相等。 根据该div的高度,另一个div“container”的上边距应进行调整。 但是,这在第一次单击时有效,但不适用于连续单击:从第二次“可单击”开始,始终需要两次单击:第一次单击将加载内容,第二次单击将调整顶部边距

$(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。