2014-01-28 146 views
0

我要保存我创建了一个对象的引用,并调用我.append()的.style工作正常,但如果我尝试做一个风格上的变化它不会允许我...可以使用.append(),而不是元素

我得到的错误是

Uncaught TypeError: Cannot set property 'display' of undefined

任何想法?

//add this slide's wrapper to module 
self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId); 

//add the contents of the slide to its wrapper div 
self.node.append(self.slides[self.currentSlide-1].html) 

//Hack to force webKit to repaint (to have style fade applied) before the show() event. 
self.node.style.display='none'; 
+0

你可以发布一个小提琴?你的self.node.append不会被终止。 – fauverism

+1

或self.node [0]访问底层对象 – JohnKiller

+0

为什么@Adrift不回答这个问题吗? – tetri

回答

1

你可能想这样做:

self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId); 

    self.node.append(self.slides[self.currentSlide-1].html); 
    self.node.hide(); 
    //or 
    self.node.css("display", "none"); 
1

这条线为您提供了一个jQuery对象的引用:

self.node = $("<div id='module_"+self.moduleId+"-slide_"+self.currentSlide+"' class='slide fade'></div>").appendTo("div#module_"+self.moduleId); 

你引用的jQuery对象,当它看起来像你need the actual DOM element,这是通过

self.node[0] 
访问

所以,你的代码将然后阅读:

self.node[0].style.display='none'; 
相关问题