如果一个ID等于"X"或“;Y"不要运行函数

Jquery if an ID is equal to "X" OR "Y" do not run function

本文关键字:quot 函数 运行 一个 ID 等于 如果      更新时间:2023-09-26

基本上,我想知道如果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;
    });
});

…它可以处理任何带有#.

的href。

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

它自己工作,但使用上面的动画,因为它在href区域有一个#。因此,在"显示更多内容"之前,页面会上下摆动。我讨厌它,想让它消失

我想做的是在点击链接时,关闭上面这两个ID为"show-rm"answers"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 -->  

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

$('a[href^="#"]:not(#show-rm,#hide-rm)')

或者更清洁的。not方法

.not()方法最终将为您提供更可读的内容选择,而不是将复杂选择器或变量推入:not()选择器过滤器。在大多数情况下,这是一个更好的选择。

$('a[href^="#"]').not('#show-rm,#hide-rm')