Я искал простой способ контролировать объект или переменную для изменений, и я нашел Object.watch()
, что поддерживается в браузерах Mozilla, но не в IE. Поэтому я начал искать, чтобы увидеть, написал ли кто-нибудь какой-то эквивалент.Object.watch() для всех браузеров?
О единственном, что я нашел, было a jQuery plugin, но я не уверен, что это лучший способ пойти. Я, конечно, использую jQuery в большинстве своих проектов, поэтому я не беспокоюсь о аспекте jQuery ...
В любом случае вопрос: может ли кто-нибудь показать мне рабочий пример этого плагина jQuery? У меня проблемы с работой ...
Или кто-нибудь знает какие-либо лучшие альтернативы, которые будут работать в перекрестном браузере?
Update после ответов:
Спасибо всем за ответы! Я пробовал код, размещенный здесь: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Но я не мог заставить его работать с IE. Нижеприведенный код отлично работает в Firefox, но ничего не делает в IE. В Firefox каждый раз, когда изменяется watcher.status
, вызывается document.write()
в watcher.watch()
, и вы можете видеть вывод на странице. В IE этого не происходит, но я вижу, что watcher.status
обновляет значение, потому что последний вызов document.write()
показывает правильное значение (как в IE, так и в FF). Но, если функция обратного вызова не вызывается, то это бесполезно ... :)
Я что-то упустил?
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>");
IIRC вы можете использовать onPropertyChange в IE – scunliffe
Заменить document.write() с боевой готовности(). Он должен работать нормально. –