Dojo扩展问题,无法正确扩展

时间:2010-01-21 19:20:31

标签: dojo

我想扩展Dojo类_Scroller BUt问题的发生是因为它在另一个函数的范围内声明了

(function(){
 var nodeKids = function(inNode, inTag){
  var result = [];
  var i=0, n;
  while((n = inNode.childNodes[i++])){
   if(getTagName(n) == inTag){
    result.push(n);
   }
  }
  return result;
 };

 var divkids = function(inNode){
  return nodeKids(inNode, 'div');
 };

 dojo.declare("dojox.grid._Scroller", null, {
  constructor: function(inContentNodes){
                 ....
                }


          }
};

所以当我这样做以扩展滚动函数


grid1.scroller.findScrollTop = dojo.hitch(grid1.scroller,  function(inRow){
divkids()
});

它无法找到一些功能。例如,你可以看到的divkids()不是全局的,而是位于某个函数的范围内; 请帮忙;。

1 个答案:

答案 0 :(得分:0)

您不能在闭包中访问私有变量,除非它们是从闭包范围之外的其他对象引用的。所以,如果你需要使用divkids()中的代码,你可以复制该函数的内容和它引用的任何私有东西,或者你可能必须直接编辑文件(把你的东西放在闭包中,或者使它成为你需要的部分不是私人的)

相关问题