Jquery–滚动功能影响单击功能

Jquery–滚动功能影响单击功能,jquery,function,click,slidetoggle,Jquery,Function,Click,Slidetoggle,我已经尝试了很长一段时间来解决这个问题没有锁,所以我尝试在这里再次,希望有人能帮助我。我有这个密码 $(window).trigger('scroll'); // init the value $(window).on('scroll', function(){ var pos = $('#subHeadline').offset(); $('.article-header').each(function(){ if (pos.top >= $(this)

我已经尝试了很长一段时间来解决这个问题没有锁,所以我尝试在这里再次,希望有人能帮助我。我有这个密码

$(window).trigger('scroll'); // init the value

$(window).on('scroll', function(){
    var pos = $('#subHeadline').offset();
    $('.article-header').each(function(){
        if (pos.top >= $(this).offset().top && pos.top <= $(this).next().offset().top) {
            $('#subHeadline').html($(this).html()); 
            return; 
        }
    });
    $('button').on('click', function () {
        $(this).text($(this).text() == '(–)' ? '(+)' : '(–)');
        $('.description' ).slideToggle('fast');
    });
});
当我点击幻灯片切换并滚动–更改为+时,有人能告诉我为什么会发生这种情况吗?我是jquery新手,所以如果这是胡说八道,请告诉我。。我试过提供一把小提琴,但没能用起来。但是网站是www.runebs.dk code:Rune,所以你可以在那里查看代码


非常感谢

这里有几个问题:

您的HTML无效: 旧代码:

<h3><button id"button1">(+)</button></h3>
应该是:

<button id="button1">(+)</button></h3>
//  also nesting a button inside an H3 tag is symantically incorrect,
//  but that's not a big deal
 $('#button1').on('click', function () { //or whatever the button ID is

使用jquery选择器$时,应始终将结果缓存在变量中,这样就不会多次调用来创建同一对象:$window变为var$window=$window;和使用相同$触发“滚动”;谢谢你的提示。。如果我明白你的意思,我应该调用第二个$window.on'scroll',函数吗{还有什么?是的,$window.on…变成$window.on…使用$window创建一个对象,您只需将该对象存储在一个变量中,在本例中命名为$window。因此,在任何需要使用$window的地方,您现在都可以使用$window,而无需创建另一个对象,使用更少的资源并使代码更加枯燥。是的,请不要重复您的操作在有意义的地方,谢谢。你对滑动切换的问题有什么想法吗?尝试移动$按钮。在$窗口外…上。在…功能上。单击切换与窗口滚动无关,因此它应该被称为独立事件侦听器。谢谢。我已经做了更正,但它仍然是触发的d当我滚动时..当我进行更正时,这很有趣滑动切换不起作用..你知道这可能是什么吗..你是否将idbutton1更改为id=button1?我尝试将滑动切换作为我正在使用的另一个按钮..因此我的html不是按钮..但也不起作用..可能是由于 ?
 $('#button1').on('click', function () { //or whatever the button ID is