我想问一下,我怎样才能制作$ .tmpl就绪函数?
在我的代码中,我将ajax json传递给我的createForm函数。
var doFunction = {
new: function() {
$.ajax({
url: 'index.php?...',
success: function(data) {
createForm(data).appendTo($("#whitespace"));
$("#whitespace").click(function(){
$(this).empty().hide();
});
$("#popup").click(function(e){
e.stopPropagation();
});
$("#whitespace").show();
}
});
},
createForm函数
function createForm(data) {
var $container = $('<div id="popup"></div>');
var $content = $('<article></article>');
$.get('mydomain.com/formcreator.htm', function(template) {
$.tmpl(template, data).appendTo($content);
});
$content.appendTo($container);
return $container;
}
但如果我告诉$container
$container.find(".tabs").tabs();
- 它包含<div class="tabs>...etc...</div>
。
我认为问题是我没有抓住$ .tmpl完成事件 是否有$ .tmpl的成功事件?
请帮助我。
答案 0 :(得分:0)
感谢@Aleksi Yrttiaho,解决方案是关闭异步ajax请求,并使用synchronous而不是它。
$.ajax({ url: 'domain.com/formcreator.htm',
success: function(template) {
$.tmpl(template, data).appendTo($content);
},
async: false
});
答案 1 :(得分:0)
你应该试试这个:
success: function(data) {
createForm(data).appendTo($("#whitespace"));
$.fn.ready(function(){
//your append callback function
});
}
它很适合我。