Как отменить привязку события click к активному элементу и выполнить повторную привязку при нажатии другого элемента? - PullRequest
1 голос
/ 11 октября 2011

Я думаю, это проще объяснить на примере:

HTML:

<div class="boxset">
    <div class="box_header">  
        h1  
    </div>
    <div class="box">
        This is some text for box 1.
    </div>
</div>

<div class="boxset">
    <div class="box_header">  
        h2  
    </div>
    <div class="box">
        This is some text for box 2.
    </div>
</div>

<div class="boxset">
    <div class="box_header">  
        h3  
    </div>
    <div class="box">
        This is some text for box 3.
    </div>
</div>

JS:

$('.box_header').bind("click", function() {
    $('.box').not($(this).next('.box')).animate({
        'width': 'hide'
    });
    $(this).next().animate({
        'width': 'show'
    });
});

jsFiddle:

http://jsfiddle.net/rDHMF/

Вот простое меню с гармошкой.Теперь, когда я нажимаю на заголовок (h1, h2, h3), отображается соответствующий контент, а ранее открытый закрывается.Однако я могу снова щелкнуть по тому же заголовку, который только что щелкнул, и он сузится и развернется.

Можно ли временно отменить привязку события click к заголовку, который я только что щелкнул, чтобы «активный» заголовок былпросто оставаться на месте, когда я нажму на него?Затем связывайтесь снова, когда я нажимаю на другой заголовок.Если да, то как?

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Я бы сделал это по-другому. Всякий раз, когда пользователь нажимает на заголовок, добавьте класс active в заголовок (и удалите его из других заголовков). И сделайте что-нибудь еще, если этот заголовок уже имеет класс active (только удалите заголовок из этого заголовка и анимируйте). Этот способ также позволяет нам настраивать стили на активных заголовках.

1 голос
/ 11 октября 2011

Это должно сделать:

$('.box_header').bind("click", function() {
    $('.box').not($(this).next('.box')).animate({
        'width': 'hide'
    });
    $(this).next().animate({
        'width': 'show'
    });
});

Вам не нужно отменять / перепривязывать события, просто не позволяйте коробке сжиматься, когда она такая же

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