Как переключать каждый элемент jQuery, кроме нажатых? - PullRequest
0 голосов
/ 17 июля 2010

Так что я пытаюсь достичь чего-то, казалось бы, очень элементарного в jQuery. У меня есть несколько «заголовков», и когда я нажимаю на заголовок, я хочу, чтобы информация под этим заголовком скользила вниз, а вся остальная информация заголовка скользила вверх (чтобы информация отображалась только в одном заголовке).

Вот код sudo того, что я хочу, чтобы произошло:

$('.more-info-header:not(.jquery-processed)').addClass('jquery-processed').click(function(e) {
  $(this).children('.game-info-text').slideToggle("Slow");
  [all other ('.game-info-text')].slideUp(fast)
});

Хотя я не могу понять, как кодировать эту вторую строку ([все остальные ('.game-info-text')]). Любая помощь очень ценится!

(я реализую это как друпальное поведение, поэтому у меня добавлен класс "обработанный jquery")

Ответы [ 4 ]

3 голосов
/ 17 июля 2010

Что-то вроде:

$('.more-info-header:not(.jquery-processed)').addClass('jquery-processed').click(function(e) {
  $(this).children('.game-info-text').slideToggle("Slow");
  $('.more-info-header').not(this).children('.game-info-text').slideUp(fast);
  //                      ^-- removes the clicked element from all `.more-info-header`
});

Ссылка: .not()

1 голос
/ 17 июля 2010

Как это?

  $('.more-info-header').click(function(e){
    var target = e.target || e.srcElement;
   $(this).children().not(target).find('.game-info-text').slideUp('fast');
   $('.game-info-text', target).slideToggle("slow");
  });
1 голос
/ 17 июля 2010
$('.more-info-header:not(.jquery-processed)')
.addClass('jquery-processed').click( function(e) {
  var these = $(this).children('.game-info-text').slideToggle("slow");
  $('.game-info-text').not(these).slideUp("fast");
});

С помощью функции not() вы можете исключить уже выбранные элементы.

1 голос
/ 17 июля 2010

Звучит так, словно вы используете плагин jQuery UI Accordion .

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