Не работает unbind
На страничке есть img c рядом событий:
<img id="storage_rate4" src="rate4.gif" onmousemove="rate_mov('4')" onmouseout="rate_restore('4', 'rate4.gif')" onclick="rate_click('4')" title="Рейтинг" /> в JS файле - функция, в конце которой вызывается unbind, который по идее должен удалить все события из img: function rate_click(storage_id) { // .. Ajax код .. $('#storage_rate4').unbind(); // удаляем все события } однако ничего не происходит :( никакой реакции... Уже всё перепробовал, и весь остальной код убирал и упрощал до невозможности, и различные вариации unbind с параметрами - указывал конкретное событие и функцию, ничего не помогает! Ошибок в отладчике Оперы нет! версия jQuery: 1.11.1.min Браузеры: Opera 23.0.1522.75, IE 8 (x64) :help: подскажите пожалуйста, что может быть не так? |
Dion,
jQuery снимает обработчики навешенные через jQuery. то есть если бы было так, то работало бы: $("#storage_rate4").bind({ mousemove: function () {...} }) $("#storage_rate4").unbind() |
tsigel,
Спасибо за подсказку, теперь всё ясно :) Решение: Может кому-нибудь пригодится, если нужно удалить уже существующие в коде события воспользуйтесь функцией removeAttr Пример: $("#element_id").removeAttr('onmousemove'); |
Dion,
Это только в том случае если обработчики прописыны в атрибутах, если же они навешаны на нативном js то снимать их придется с помощью removeEventListener |
Часовой пояс GMT +3, время: 17:52. |