jQuery: удалить класс после нажатия на элемент - PullRequest
1 голос
/ 05 февраля 2010

Я застрял на небольшой проблеме с jQuery. У меня есть коллекция ссылок (более 50), сгенерированных из цикла php. Когда пользователь нажимает на ссылку, вызывается событие загрузки jQuery, и скрипт php / mysql (называемый page.php в примере ниже) загружается в пустой div на странице.

Я бы хотел, чтобы класс (".classy") был удален из тега и заменен другим классом (".newclass"). Это делается для того, чтобы информация загружалась только с первого клика.

HTML:

<a class='classy' name='marvin'>Click to toggle info</a>
<div id='marvin'></div>

JQuery:

$(document).ready(function(){
    $(".classy").click(function(){
        var foo = $(this).attr("name");
        $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
        $(this).removeClass('classy');
        $(this).addClass('newclass');
        return false;
    });
});

Спасибо!

Ответы [ 2 ]

2 голосов
/ 05 февраля 2010

То, что вы изменили класс, не означает, что обработчик события click удален из ссылки. Вам нужно будет отсоединить его вручную или просто добавить оператор if, который проверяет, к какому классу относится ссылка.

Или используйте функцию live для привязки события click.

1 голос
/ 05 февраля 2010

Не положительно - но вам может потребоваться сделать это следующим образом (используйте $ .live ()):

$(document).ready(function(){
    $(".classy").live('click', function(){
        var foo = $(this).attr("name");
        $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
        $(this).removeClass('classy').addClass('newclass');
        return false;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...