Недавно я обновил файл jQuery нашего проекта от 1.4.2
до 1.4.4
и выяснилось, что с 1.4.3
способ, которым мы использовали jQuery.data
, прекратил работать.jQuery.data больше не работает с окном?
У нас есть этот код:
var events = $(window).data('events');
if (events.scroll)
if (!events.scroll.include(handler))
$(window).scroll(handler);
цель состоит в том, чтобы предотвратить этот конкретный обработчик от привязки несколько раз.
В 1.4.2
это прекрасно работает. В 1.4.4
, events
не определено.
function handler() {
//do something
}
$(document).ready(function(){
$(window).scroll(handler);
$('div#test').scroll(handler);
$(window).data('events') -> undefined
$('div#test').data('events') -> Object
});
Что изменилось с помощью этого API? Как мне перечислить события для window
?
Я изменил первую строку следующим образом:
var events = $(window).data('__events__').events;
немного грязный вид, но и возможность подключать события к простым объектам неотразима.
Это не работает с объектом `window`. Проверить снова. http://jsfiddle.net/dH4pz/ – 2010-12-02 02:33:27
@Adam: edits :) – Matchu 2010-12-02 02:34:19