Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Jquery Deferred - Fatal编程技术网

如何使用jQuery';是否推迟隐藏和显示表单,同时在加载时附加元素?

如何使用jQuery';是否推迟隐藏和显示表单,同时在加载时附加元素?,jquery,jquery-deferred,Jquery,Jquery Deferred,我有两栏内容。第一个内容有一个表单,使用该表单我们可以将列表信息添加到右列 但是在加载页面时,右边的列应该加载静态数据。我做到了,效果很好 问题是,一段时间内由于浏览器引擎或其他原因渲染过程延迟,表单仍能正常工作。(左栏) 我的问题是,静态内容全部呈现后,如何使表单提交按钮(现在隐藏)可见 我听说了一些关于jQuery延迟的事情,是否可以将其用于这种呈现过程 要了解更多信息,请访问我的实时演示 如果是这样,有人帮我吗 以下是我当前用于渲染的代码: var staticData = { d

我有两栏内容。第一个内容有一个表单,使用该表单我们可以将列表信息添加到右列

但是在加载页面时,右边的列应该加载静态数据。我做到了,效果很好

问题是,一段时间内由于浏览器引擎或其他原因渲染过程延迟,表单仍能正常工作。(左栏)

我的问题是,静态内容全部呈现后,如何使表单提交按钮(现在隐藏)可见

我听说了一些关于jQuery延迟的事情,是否可以将其用于这种呈现过程

要了解更多信息,请访问我的实时演示

如果是这样,有人帮我吗

以下是我当前用于渲染的代码:

var staticData = {
    datas : [
        {"name": "Test Task #1", "date": "12/01/2012", "assigned": "John Doe" },
        {"name": "Test Task #2", "date": "12/02/2012", "assigned": "John Doe" },
        {"name": "Test Task #3", "date": "12/03/2012", "assigned": "John Doe" },
        {"name": "Test Task #4", "date": "12/04/2012", "assigned": "John Doe" },
        {"name": "Test Task #5", "date": "12/05/2012", "assigned": "John Doe" },
        {"name": "Test Task #6", "date": "12/06/2012", "assigned": "John Doe" },
        {"name": "Test Task #7", "date": "12/07/2012", "assigned": "John Doe" }
    ]
};

var template = Handlebars.compile($('#existingTask').html());
$('ul').append(template(staticData.datas));


var 
    form = $('#taskForm'),
    submit = form.find('#submit');

    submit.click(function(e) {

        e.preventDefault();

        var
        name     = $.trim(form.find('#name').val()),
        date     = $.trim(form.find('#date').val()),
        assigned = $.trim(form.find('#assigned').val()),
        newData  = { setData :[ {"name": name, "date": date, "assigned": assigned }] };

        var result = _.find(staticData.data, function(val){ 
            return _.isEqual(object, val)
        });

        var status = _.isObject(result) ? true : false;

        console.log('status', status);

        staticData.datas.push(newData.setData[0]);

        if(!status && name && date && assigned){
            $('ul').prepend(template(newData.setData));
        }

    });

据我所知,
handlebar.compile()
template()
是同步过程

如果是这样,那么你就不需要延期/承诺。在这两个过程完成后,应该可以简单地在同一事件线程中显示表单:

var form = $('#taskForm').css('visibility', 'visible'),