如果ID等于"X"或"Y",则Jquery不运行函数

Bra*_*nce 1 html javascript css jquery

基本上,我想知道如果id等于"x"或"y",是否有绕过/关闭/不执行函数的方法.

我已经安装了这个功能,可以将锚链接设置为页面上各自的区域/锚点.也就是说,如果我点击按钮,它会将页面向下移动到按钮所引用的区域.

$(document).ready(function(){
    $('a[href^="#"]').on('click',function (e) {

    e.preventDefault();

    var target = this.hash;
    var $target = $(target);

    $('html, body').stop().animate({
        'scrollTop': $target.offset().top
    }, 900, 'swing', function () {
        window.location.hash = target;
    });
});
Run Code Online (Sandbox Code Playgroud)

...正在使用任何具有#的href.

我需要在同一页面上使用SCSS功能添加显示更多区域.我在这里添加了示例:https://codepen.io/ojbravo/pen/YPJpXe

哪个适用于它自己,但使用上面的动画,因为它在href区域中有一个#.因此,页面在"显示更多"之前会上下摆动.我恨它并希望它消失

我想要做的是在点击链接时关闭页面上这两个链接的锚动画,ID为"show-rm"和"hide-rm".

这是页面上的代码:

<div class="panel-wrapper-rm">
<a href="#show-rm" class="show-rm btn-rm" id="show-rm">Show Full Article</a> 
<a href="#hide-rm" class="hide-rm btn-rm" id="hide-rm">Hide Full Article</a> 
<div class="panel-rm">

<p>fkjadsljfal;s kadfjas jkdajfkl;das jfklajfkl;a jadkljfkadl jdjfl;da
   jk fl;kadjf kl;asdjfkl jdaklfj akl;jd flk;ajd l;kjflk;adj
   fkl;adjfkdj kl;adjfklda jlkajflka jlk;fj daklsjfkldj kaljfkl;adj
   kl;fjadl ;jfal;jd fklj fkasjf l;kajalk;j fkl;dj klajdfakls;d
   jfl;akdfj adkjfl ajfd
</p>



 </div><!-- end panel -->
 <div class="fade-rm"></div>
</div><!-- end panel-wrapper -->  
Run Code Online (Sandbox Code Playgroud)

Pro*_*man 5

您可以使用:not selector从选择器中排除某些选择

$('a[href^="#"]:not(#show-rm,#hide-rm)')
Run Code Online (Sandbox Code Playgroud)

或者更清洁的.not方法

除了将复杂的选择器或变量推送到:not()选择器过滤器之外,.not()方法最终会为您提供更多可读选择.在大多数情况下,这是一个更好的选择.

$('a[href^="#"]').not('#show-rm,#hide-rm')
Run Code Online (Sandbox Code Playgroud)