如何用jquery排除特定的孩子?

时间:2017-03-23 08:27:12

标签: jquery

这是我的HTML

<div class="big-wrap">
  <div class="logoburger">
    <div class="burgermenu">
      <img class="burger" src="/includes/pictures/1452702292_menu-alt.svg">
    </div>
    <div class="search">
      <div id="search-icon"></div>
      <form class="ui-widget" method="POST" action="../">
        <input id="tags" placeholder="Search.." name="search" class="ui-autocomplete-input" autocomplete="off">
      </form>
    </div>
    <div class="logo">
      <a class="homepage" href="/">
        <img src="/includes/pictures/Logo.svg" alt="Logo">
      </a>
    </div>
  </div>
 <div class="big-content"></div>
</div>

这是我的css

.pushedoff {
  opacity: 0.4;
  pointer-events: none;
}

这是我的jquery。

$('.burgermenu').click(function() {
  $('.big-wrap').not($'.burgermenu').toggleClass('pushedoff');
}

我希望整个.big-wrap能够被推迟&#39;除了汉堡菜类的元素之外&#39;这是一个大孩子里面的孩子。我试图使用.not()来排除.burgermenu,但它似乎不起作用。有没有办法实现这个目标?谢谢。

2 个答案:

答案 0 :(得分:2)

请检查以下代码:

$(document).ready(function () {
    $('.burgermenu').click(function() {
        $('.logoburger').children('div').not('.burgermenu').toggleClass('pushedoff');
    });
});

答案 1 :(得分:1)

如果我理解正确的话,

以下是问题。

您正在将CSS应用于父级,并且您尝试将其排除在子级中,但是根据CSS属性继承,子元素也将继承parent属性,因此您无法执行此操作

我认为以下代码段会根据您的问题和评论帮助您实现您想要的内容

&#13;
&#13;
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /new/

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
&#13;
$('.burgermenu').click(function() {
  $('.big-wrap div.logoburger').find('div').not('.burgermenu').toggleClass('pushedoff');
});
&#13;
.pushedoff {
  opacity: 0.4;
  pointer-events: none;
}
&#13;
&#13;
&#13;