Xin lưu ý rằng Object.Watch
và Object.Observe
đều bị phản đối tại (tính đến tháng 6 năm 2018).
Tôi đang tìm kiếm một cách dễ dàng để theo dõi một đối tượng hoặc biến để thay đổi và tôi nhận thấy Object.watch()
, cách này được hỗ trợ trong trình duyệt Mozilla, nhưng không hỗ trợ IE. Vì vậy, tôi bắt đầu tìm kiếm xung quanh để xem có ai đã viết một số loại tương đương.
Về thứ duy nhất tôi tìm thấy là một plugin jQuery , nhưng tôi không chắc đó có phải là cách tốt nhất để sử dụng hay không. Tôi chắc chắn sử dụng jQuery trong hầu hết các dự án của mình, vì vậy tôi không lo lắng về khía cạnh jQuery ...
Dù sao, câu hỏi: Ai đó có thể chỉ cho tôi một ví dụ hoạt động của plugin jQuery đó không? Tôi đang gặp sự cố làm cho nó hoạt động ...
Hoặc, có ai biết về bất kỳ lựa chọn thay thế nào tốt hơn có thể hoạt động trên nhiều trình duyệt không?
Cập nhật sau câu trả lời :
Cảm ơn mọi người cho hồi đáp! Tôi đã thử mã được đăng ở đây: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Nhưng tôi dường như không thể làm cho nó hoạt động với IE. Đoạn mã dưới đây hoạt động tốt trên Firefox, nhưng không hoạt động trong IE. Trong Firefox, mỗi lần watcher.status
được thay đổi, document.write()
trong watcher.watch()
được gọi và bạn sẽ nhìn thấy đầu ra trên trang. Trong IE, điều đó không xảy ra, nhưng tôi có thể thấy điều đó watcher.status
đang cập nhật giá trị, vì lệnh document.write()
gọi cuối cùng hiển thị giá trị chính xác (trong cả IE và FF). Nhưng, nếu hàm gọi lại không được gọi, thì điều đó thật vô nghĩa ... :)
Tui bỏ lỡ điều gì vậy?
var options = {'status': 'no status'},
watcher = createWatcher(options);
watcher.watch("status", function(prop, oldValue, newValue) {
document.write("old: " + oldValue + ", new: " + newValue + "<br>");
return newValue;
});
watcher.status = 'asdf';
watcher.status = '1234';
document.write(watcher.status + "<br>");