установка автора свои собственные события с креплениями, поэтому вероятность change_actions
являются функциями, которые подписался работать, когда что-то случается количество.
попробовать что-то вроде этого:
// initialize with a value
var actions = [
function(x){ console.log('I see a new x: ' + x); }
];
// add actions "later"
actions.push(function(x){ console.log('Yup, a new x: ' + x); });
// Then execute them:
$.each(actions, function(){
this(4);
});
// add another one still
actions.push(function(x){ console.log(x + ' looks new'); });
// re-iterate over them
// Then execute them:
$.each(actions, function(){
this(5);
});
и результат:
// first iteration (only 2 subscribed events)
[15:56:50.030] "I see a new x: 4"
[15:56:50.030] "Yup, a new x: 4"
// second iteration (now we have 3, one was added later)
[15:56:50.030] "I see a new x: 5"
[15:56:50.030] "Yup, a new x: 5"
[15:56:50.030] "5 looks new" // <-- new subscription
думать о нем, как click
события и как вы можете добавить подписки путем связывания с $('element').click()
. каждый раз, когда происходит щелчок, все подписанные события активируются.
change_actions должен быть массивом функций. в plain js, он работает как: function apply (v) {return this (v);} [1,2,3] .map (apply, RegExp); – dandavis
Добавьте 'console.log (this)' или 'console.dir (this)' в тело обратного вызова и посмотрите, что означает 'this'. – fardjad
Функция $ .each() может использоваться для итерации по любой коллекции, будь то объект или массив. В случае массива обратный вызов каждый раз передается индексом массива и соответствующим значением массива. (Доступ к этому значению также можно получить через это ключевое слово ...) отсюда: http://api.jquery.com/jQuery.each/ – svillamayor