从另一个Ajax函数内部调用函数。适用于纯JavaScript

时间:2013-03-14 15:58:16

标签: javascript ajax

我有一个非常罕见的问题,或者我不知道,因为我是初学者:)

我正在用ajax创建一个DOM树,输出很完美,除了我调用的函数不起作用。 。如果我使用纯JavaScript创建相同的三个。它实际上调用了函数。很难解释,会显示一些代码。

function stickers(){
    $(document).ready(function() {
        $('#add-new-sticker-btn').click(function() {
            $.get('xml/data.xml', function(data) {
                $('#page-content-wrapper').empty();

                $(data).find('car').each(function() {
                    var $car = $(this);
                    var sticker = '<div class="sticker">';
                    sticker += '<div class ="sticker-drag">' + '</div>';
                    sticker += '<textarea>' + $car.find('product').text() + '</textarea>';
                    sticker += '<div class="sticker-close">' + '</div>';

                    $('#page-content-wrapper').append(sticker);
                });
            });
            return false;
        });
    }); 
    movewrap();  // <!-- this is the function that I'm trying to call.
}

但如果我改为编写纯javascript

function stickers(){
    var sticker = createElementWithClass('div', 'sticker'),
    textArea = document.createElement('textarea');
    var stickerDrag = createElementWithClass('div','sticker-drag')
    var stickerClose = createElementWithClass('div','sticker-close')

    sticker.appendChild(stickerDrag);
    sticker.appendChild(textArea);
    sticker.appendChild(stickerClose);

    document.getElementById('page-content-wrapper').appendChild(sticker);

    movewrap(); 
} // its calling the moveWrap function.

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在AJAX回调结束时将调用发送到moveWrap。目前它是在发出请求之后调用的,而不是在收到响应之后调用的,并且没有任何东西可以执行,因为DOM元素还没有。