我在添加DOM节点时遇到问题..
这不起作用:
this.loader = $(document.body).append('<div class="loader" style="display:none">loader</div>');
$(this.loader).fadeIn(1000);
但这有效:
this.loader = DOM.div(document.body);
with(this.loader){
className = 'loader';
innerHTML = 'loader';
style.display = 'none';
}
$(this.loader).fadeIn(1000);
谁能告诉我有什么问题?!
但如果我喜欢这样,则会添加div并显示其可见
this.loader = $(document.body).append('<div class="loader">loader</div>');
答案 0 :(得分:1)
追加功能不会返回您认为我认为的值。你应该这样做:
var myDiv = $('<div class="loader" style="display:none">loader</div>');
$(document.body).append(myDiv);
myDiv.fadeIn(1000);
答案 1 :(得分:1)
append
返回传递给它的选择器/对象的jQuery对象,所以你的第一行是获取document.body
周围的jQuery对象,而不是新div
的jQuery包装器。您可能需要appendTo
:
this.loader = $('<div class="loader" style="display:none">loader</div>').appendTo(document.body);
this.loader.fadeIn(1000);
或更长(但可能更清晰):
this.loader = $('<div class="loader" style="display:none">loader</div>');
this.loader.appendTo(document.body);
this.loader.fadeIn(1000);
另请注意,您获得的内容已经是jQuery对象,因此您无需在其上使用$()
。