2010-01-21 4 views
1

я хочу, чтобы расширить класс Dojo _Scroller но проблема возникает потому, что его объявили в рамках другой функцииDojo расширить вопрос, не может распространяться правильно

(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(), который вы видите, не является глобальным, но находится в области некоторой функции; Пожалуйста, помогите ;.

ответ

0

Вы не можете получить доступ к закрытым переменным в закрытии, если только они не ссылаются на какой-либо другой объект за пределами области закрытия. Итак, если вам нужно использовать код в divkids(), вы можете либо дублировать содержимое этой функции, либо любое частное содержимое, которое оно ссылается, или вам, вероятно, придется напрямую редактировать файл (помещать ваши вещи в закрытие или сделайте так, чтобы нужные вам части не были частными)

Смежные вопросы