2010-11-02 3 views
0

Мне нужно получить доступ к локальной переменной, возвращаемой функцией внутри цепочки.javascript function - цепь возвращаемого значения

ex.

$("#history_table").bind("sortStart", function() { 
    var a=30; 
    return a; 
}).bind("sortEnd", function() { 
    alert(a);    
}); 

здесь, в этом примере, мне нужно получить доступ к переменным возвращенное первой функции, sortStart и aortEnd событие будет вызывать две функции асинхронна ...

ответ

3

переменные должно быть объявлено вне:

var a = 0; 
$("#history_table").bind("sortStart", function() { 
    a=30; 
    return a; 
}).bind("sortEnd", function() { 
    alert(a);    
}); 

или сделать его в качестве свойства текущего объекта с помощью функции .data():

$("#history_table").bind("sortStart", function() { 
    var a = 30; 
    $(this).data('a', a); 
    return a; 
}).bind("sortEnd", function() { 
    var a = $(this).data('a'); 
    alert(a);    
}); 
+0

Я думаю, что подход '.data()' тот, который имеет смысл. Возврат значения из обработчика события - даже «пользовательский» обработчик событий - действительно не имеет большого смысла, если только идея явно не контролирует пузырьки каким-то динамическим способом. – Pointy

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