jQuery: лучшая практика для отмены / удаления событий функций? - PullRequest
3 голосов
/ 31 октября 2011

Я использую плагин jQuery Cloud Zoom, и я изменил инициализацию так, чтобы изображение увеличивалось, когда пользователь нажимает «кнопку увеличения» вместо того, чтобы зависать.Я не уверен, как сбросить / удалить это событие, когда пользователь оставляет изображение, и мне было бы очень интересно услышать, что было бы лучше.

Вот как выглядит сценарий -

$('.magnify').click(function() {
    $('.cloud-zoom').CloudZoom({ showTitle: false });
    return false;
});

$('.display').mouseout(function() {
  // unset?
});

(". Display" - контейнер) Требуется ли связывание / открепление?Кажется, что это может сработать, но я бы хотел, чтобы был более простой метод, так как это всего лишь одна функция.

Ответы [ 3 ]

6 голосов
/ 31 октября 2011

Просто используйте функцию уничтожения CloudZoom:

$('.cloud-zoom').data('zoom').destroy();

Обратите внимание, что это уничтожает только первый случай, если вы используете более одного:

$('.cloud-zoom').each(function(){
  $(this).data('zoom').destroy();
});
5 голосов
/ 28 февраля 2013

Для Star Plugins версии 3 это

$('.cloudzoom').data('CloudZoom').destroy();
0 голосов
/ 01 ноября 2011

То есть вы пытаетесь «удалить» увеличенное изображение при наведении мыши? Это кажется проблемой доступности. Кроме того, что, если вы потеряете след мыши, что означает, что зум исчезнет, ​​если вы слегка покачаете мышкой и случайно покинете дисплей? Кажется немного неуклюжим. Почему бы не иметь что-то вроде, когда вы нажимаете в другом месте, кроме изображения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...