Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bootstrap4滚动间谍-活动到父li_Javascript_Bootstrap 4 - Fatal编程技术网

Javascript Bootstrap4滚动间谍-活动到父li

Javascript Bootstrap4滚动间谍-活动到父li,javascript,bootstrap-4,Javascript,Bootstrap 4,我有这样的bootstrap4菜单: <ul class="navbar-nav ml-auto"> <li class="nav-item"><a class="nav-link" href="#introduction">INTRODUKTION <span class="sr-only">(current)</span></a></li> </ul> 默认scroll spy将活动添加

我有这样的bootstrap4菜单:

<ul class="navbar-nav ml-auto">
<li class="nav-item"><a class="nav-link" href="#introduction">INTRODUKTION <span class="sr-only">(current)</span></a></li>
</ul>
默认scroll spy将活动添加到导航链接(a)我需要更改此设置,因为我的活动应该在导航项目(li)之后。我可以这样做吗

你可以在这里看到:


当我单击时,一切正常-但在滚动时-active是a href。

默认情况下
。active
类将仅添加到锚定标记

根据您的要求尝试类似的方法

$('[data-spy="scroll"]').on('activate.bs.scrollspy', function () {
  $(".navbar-nav .active").removeClass("active").parent().addClass("active");
})
添加属性
data spy=“scroll”

在带有
id=“introduction”


我找到了解决方案。我只需要添加新事件(cssClassChanged)-并开始工作

(function(){
    // Your base, I'm in it!
    var originalAddClassMethod = jQuery.fn.addClass;

    jQuery.fn.addClass = function(){
        // Execute the original method.
        var result = originalAddClassMethod.apply( this, arguments );

        // trigger a custom event
        jQuery(this).trigger('cssClassChanged');

        // return the original result
        return result;
    }
})();
然后

$(".nav-link").bind('cssClassChanged' , function(e) {
        $(".nav-item").each( function() {
            if( $(this).hasClass("active") == true ) {
                $(this).removeClass("active");
            }
        });

        $(this).removeClass("active").parent().addClass("active");
    });

能否添加一个代码段
$('.nav link').removeClass('active')应该为您删除活动类。@David我不想删除它,我需要更改活动类的位置。默认情况下,active放在href元素中-我需要将active类名的位置更改为nav-item@NikhilGhuse链接added@GrzegorzMiśkiewicz scrollspy未在您的页面中工作$('[data spy=“scroll”]')。on('activate.bs.scrollspy',function(){console.log('test');});不起作用-没有效果:-(我试着这样做OK-现在我在家!谢谢你!我太快了-根本不起作用。它使菜单的最后一个元素处于活动状态,就这样。没有滚动事件,正在进行更改。可能这是bs4中的错误