Я недавно обновил файл jQuery нашего проекта с 1.4.2
до 1.4.4
, и похоже, что с 1.4.3
способ, которым мы использовали 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;
выглядит немного грязно, но способность связывать события с простыми объектами неотразима.