JQuery .not () Выбор не работает - PullRequest
2 голосов
/ 04 декабря 2011

Ниже я вставил ссылку на мою веб-страницу с поддержкой JQuery.Глядя на исходный код, вы можете видеть, что я использовал

$('html').not(this).fadeTo('fast', 0.25);

, пытаясь заставить весь экран исчезать, за исключением нажатой кнопки DIV.К сожалению, всякий раз, когда я проверяю это, я обнаруживаю, что все исчезло, включая DIV, который предположительно не выбран в приведенной выше команде.Почему это происходит и как я могу это исправить?

Любая и вся помощь очень ценится!

Не стесняйтесь просматривать исходный код по адресу: http://numberonekits.com/SchoolWeb/index.html CSS и другиеФайлы JS находятся в одном каталоге.

Ниже приведен соответствующий код:

<body>
//other stuff that should be faded...
<div id="templatemo_content_wrapper">
//other stuff that should be faded...
<div id="templatemo_sidebar">
//other stuff that should be faded...
<div id="announce">

<p>This is the DIV that shouldn't be faded</p>

</div>
//other stuff that should be faded...
</div>
//other stuff that should be faded...
</div>
//other stuff that should be faded...
</body>

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

Пока this не является элементом html, вы будете постепенно исчезать с элемента html, который исчезнет со всех его потомков.

Я не смотрю на ваш источник,но, похоже, у вас есть группа братьев и сестер.

Если это так, вам нужно выбрать их и сделать .not(this) для этого выбора.

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

var sections = $('.top_sections');

// then on some event
sections.click( function() {
    sections.not( this ).fadeTo('fast', 0.25);
});

Публикация альтернативныхРешение из комментария ниже:

Поскольку элемент, который вы хотите выделить, вложен в предков, других потомков которых вы хотите скрыть, вы должны ...

... Взять другойподход.Используйте слои.

Иметь div, который охватывает ширину и высоту всей страницы.Давайте назовем это blocker.Поместите это в z-index:100 или что-то.Сделайте это background:#FFF и opacity:0.

Затем, когда вы хотите выделить секцию announce, установите ее z-index на значение выше 100 (или выше z-index blocker), а затем исчезните вblocker до opacity .75.

1 голос
/ 04 декабря 2011
$('body').children().not('#templatemo_content_wrapper').add(
  $('#templatemo_content_wrapper').children().not(this)
).fadeTo('fast', 0.25);

может добиться цели.

...