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