2011-05-09 60 views
1

你怎么能把一个DOM节点放在$方法中?

$(this.loader).fadeIn(1000); 

也试过

this.loader.fadeIn(1000); 

编辑:

DOM.div(),如果我扭转这样它的工作原理

动画返回一个div元素对象

function Loader(){ 
    this.loader = null; 
    this.threads = 0; 

    this.cnstr = function(){ 
     if(this.threads == 0){ 
      this.loader = DOM.div(document.body); 
      with(this.loader){ 
       className = 'loader'; 
       innerHTML = 'loader'; 
       style.opacity = 0; 
       style.filter = 'alpha(opacity=0)'; 
      } 
      $(this.loader).fadeIn(1000); 

      elm_position_center(this.loader); 
     }   
     this.threads++; 
    }; 

    this.dstr = function(){ 
     this.threads--; 

     if(this.threads <= 0){ 
      this.threads = 0; 

      if(this.loader){ 
       DOM.rmv(this.loader); 
      } 
     } 
    }; 
} 
var Loader = new Loader(); 

this.loader = DOM.div(document.body); 
      with(this.loader){ 
       className = 'loader'; 
       innerHTML = 'loader'; 
       style.opacity = 1; 
       style.filter = 'alpha(opacity=100)'; 
      } 
      $(this.loader).fadeOut(1000); 
+0

这(第一)将正常工作,如果被引用的DOM节点'this.loader'是隐藏的。请张贴更多的代码和/或提供http://jsfiddle.net/演示。 – 2011-05-09 19:20:05

+0

您需要提供有关您问题的更多信息,否则它会再次关闭。 – hammar 2011-05-09 19:20:27

+0

编辑............. – clarkk 2011-05-09 19:24:58

回答

1

JQuery只是改变了opacityfilter仍然保持活跃,使得div从来没有真正为你出现。

我的建议是报废style.opacitystyle.filter,以及刚刚成立

style.display = 'none';