Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Удаление класса при клике на объект (https://javascript.ru/forum/jquery/27715-udalenie-klassa-pri-klike-na-obekt.html)

lukingnu 22.04.2012 17:43

Удаление класса при клике на объект
 
Есть скрипт
$(document).ready(function() {
                      	 $('.F0').click(function(){
                           alert('F0');
                             $(this).removeClass('F0');
	});

                       	});


При щелчке по объекту класса F0 его класс удаляется, он-то вроде удаляется (это видно,если класс имеет визуальные свойства), но при повторном клике функция вновь вызывается,почему?И как сделать так,чтоб она уже не вызывалась?

Octane 22.04.2012 17:48

CSS-классы никак не связаны с событиями элементов, это всего-лишь значения атрибута class, по которым выполняется поиск элементов, обработчики событий привязываются к каждому найденному элементу с помощью addEventListener/attachEvent (bind в jQuery). Для удаления обработчиков событий предусмотрен специальный метод:
http://api.jquery.com/off/

atlantis 22.04.2012 21:21

$('.F0').click(function(e){
    alert('F0');
    $(this).removeClass('F0');
    $(this).unbind(e);
});

Pavel M. 23.04.2012 12:14

есть же метод one http://api.jquery.com/one/ для одноразовых событий
$('.F0').one('click', function(e){
    alert('F0');
    $(this).removeClass('F0');
});


Часовой пояс GMT +3, время: 12:28.