Есть ли метод для jQuery .tmpl () завершенной обработки событий? - PullRequest
1 голос
/ 10 августа 2011

Я хотел бы спросить, как я могу сделать функцию $ .tmpl ready?

В своем коде я передаю 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?

Пожалуйста, помогите мне в этом.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

Вы должны попробовать это:

success: function(data) {
        createForm(data).appendTo($("#whitespace"));
        $.fn.ready(function(){
            //your append callback function
        });
}

Это прекрасно работает для меня.

0 голосов
/ 11 августа 2011

Спасибо за @Aleksi Yrttiaho за это, решение отключает асинхронный ajax-запрос и использует вместо него синхронный.

$.ajax({ url: 'domain.com/formcreator.htm',
success: function(template) {
    $.tmpl(template, data).appendTo($content);
},
async: false
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...