我有一个非常罕见的问题,或者我不知道,因为我是初学者:)
我正在用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.
有什么想法吗?
答案 0 :(得分:2)
在AJAX回调结束时将调用发送到moveWrap
。目前它是在发出请求之后调用的,而不是在收到响应之后调用的,并且没有任何东西可以执行,因为DOM元素还没有。