Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 冲突脚本,什么';问题是什么?_Javascript - Fatal编程技术网

Javascript 冲突脚本,什么';问题是什么?

Javascript 冲突脚本,什么';问题是什么?,javascript,Javascript,我在一个网页上使用了两种不同的脚本——一种是纯JS,另一种是jQuery JS脚本用于在移动视图中切换汉堡菜单hamb.onclick单击汉堡时显示菜单,menuL.onclick单击菜单项时隐藏菜单。后者在jQuery脚本处于活动状态时拒绝工作(在注释掉jQuery脚本时工作) (功能(){ 函数类(元素,类名){ 返回新的RegExp(“”+className+“”).test(“”+elem.className+“”); } 函数toggleClass(元素,类名){ var newCl

我在一个网页上使用了两种不同的脚本——一种是纯JS,另一种是jQuery

JS脚本用于在移动视图中切换汉堡菜单hamb.onclick单击汉堡时显示菜单,menuL.onclick单击菜单项时隐藏菜单。后者在jQuery脚本处于活动状态时拒绝工作(在注释掉jQuery脚本时工作)


(功能(){
函数类(元素,类名){
返回新的RegExp(“”+className+“”).test(“”+elem.className+“”);
}
函数toggleClass(元素,类名){
var newClass=''+elem.className.replace(/[\t\r\n]/g'')+'';
if(hasClass(元素,类名)){
while(newClass.indexOf(“”+className+“”)>=0){
newClass=newClass.replace(''+className+'');
}
elem.className=newClass.replace(/^\s+|\s+$/g');
}否则{
elem.className+=''类名称;
}
}
var hamb=document.querySelector('.hamburger');
var menuL=document.querySelector('.menuList');
hamb.onclick=函数(){
toggleClass(这是“汉堡圈”);
切换类(menuL,“menuActive”);
};
menuL.onclick=函数(){
toggleClass(火腿,“汉堡圈”);
切换类(menuL,“menuActive”);
};
})();
jQuery用于平滑导航/滚动到页面的定位点:

<script>
    function scrollNav() {
        $('.menu a').click(function(){
            //Toggle Class
            $(".active").removeClass("active");
            $(this).closest('li').addClass("active");
            var theClass = $(this).attr("class");
            $('.'+theClass).parent('li').addClass('active');
            //Animate
            $('html, body').stop().animate({
            scrollTop: $( $(this).attr('href') ).offset().top - 160
            }, 800);
            return false;
            });
        $('.scrollTop a').scrollTop();
    }
    scrollNav();
</script>

函数scrollNav(){
$('.menu a')。单击(函数(){
//切换类
$(.active”).removeClass(“active”);
$(this).最近('li').addClass(“活动”);
var theClass=$(this.attr(“类”);
$('..+theClass).parent('li').addClass('active');
//生动活泼
$('html,body').stop().animate({
scrollTop:$($(this.attr('href')).offset().top-160
}, 800);
返回false;
});
$('.scrollTop a').scrollTop();
}
滚动导航();
据我所知,jQuery脚本highjack了JS脚本的onclick事件,因为它们工作在相同的父元素上:“.menu a”和“menuList”(即“.menu”内部的“ul”)


如何使两个脚本一起工作?我是一名初学者,我的JavaScript技能仍然很弱。

如果第二个脚本劫持了事件,只需将函数移到第二个脚本中并在那里运行即可


它起作用了

你在控制台里有什么错误吗?没有。就好像menuL.onclick根本没有发生一样。(尝试使用警报消息-不会发生任何情况。)
<script>
    function scrollNav() {
        $('.menu a').click(function(){
            //Toggle Class
            $(".active").removeClass("active");
            $(this).closest('li').addClass("active");
            var theClass = $(this).attr("class");
            $('.'+theClass).parent('li').addClass('active');
            //Animate
            $('html, body').stop().animate({
            scrollTop: $( $(this).attr('href') ).offset().top - 160
            }, 800);
            return false;
            });
        $('.scrollTop a').scrollTop();
    }
    scrollNav();
</script>