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