0

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

我正在用 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.

有任何想法吗 ?

4

1 回答 1

2

moveWrap在 AJAX 回调结束时调用 to 。目前它是在发出请求后调用的,而不是在收到响应后调用的,并且由于 DOM 元素还不存在,它不会有任何事情要做。

于 2013-03-14T16:07:07.173 回答