thiết lập giả các sự kiện riêng của họ với các ràng buộc, do đó rất có thể là change_actions
là chức năng được đăng ký để chạy khi một cái gì đó xảy ra với số lượng.
Hãy thử một cái gì đó như thế này:
// 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);
});
và kết quả:
// 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
nghĩ về nó như sự kiện click
và làm thế nào bạn có thể thêm các đăng ký bằng cách gắn vào $('element').click()
. mỗi khi một nhấp chuột xảy ra, mọi sự kiện đã đăng ký sẽ được kích hoạt.
Nguồn
2013-07-24 19:57:54
change_actions phải là một mảng các hàm. trong js đơn giản, nó hoạt động như: hàm apply (v) {return this (v);} [1,2,3] .map (apply, RegExp); – dandavis
Thêm 'console.log (this)' hoặc 'console.dir (this)' vào phần gọi lại và xem 'this' là gì. – fardjad
Hàm $ .each() có thể được sử dụng để lặp qua bất kỳ bộ sưu tập nào, cho dù đó là một đối tượng hay một mảng. Trong trường hợp của một mảng, hàm gọi lại được chuyển qua một chỉ mục mảng và một giá trị mảng tương ứng mỗi lần. (Giá trị cũng có thể được truy cập thông qua từ khóa này ...) từ đây: http://api.jquery.com/jQuery.each/ – svillamayor