Javascript 在HTML中调用JS脚本
你好,我有这个代码,我想用紫色显示活动链接。我有一个js文件,但是,似乎没有预期的工作。我不确定我到底哪里做错了。其他一切都正常工作,但当你点击一个链接时,它无法像css中那样高亮显示为紫色。我只提供了必要的代码,有人吗 htmlJavascript 在HTML中调用JS脚本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,你好,我有这个代码,我想用紫色显示活动链接。我有一个js文件,但是,似乎没有预期的工作。我不确定我到底哪里做错了。其他一切都正常工作,但当你点击一个链接时,它无法像css中那样高亮显示为紫色。我只提供了必要的代码,有人吗 html css(site.css) 。导航菜单li.active a{ 背景颜色:紫色; 颜色:#fff; } .导航菜单li ul{ 显示:无; } .导航菜单li a:悬停{ 背景色:黑色; 颜色:白色; } .导航菜单li a.激活{ 背景
-
css(site.css)
。导航菜单li.active a{
背景颜色:紫色;
颜色:#fff;
}
.导航菜单li ul{
显示:无;
}
.导航菜单li a:悬停{
背景色:黑色;
颜色:白色;
}
.导航菜单li a.激活{
背景颜色:紫色;
颜色:#fff;
}
javascript(color.js)
$(文档).ready(函数(){
$('ul li a')。单击(函数(){
$('li a').removeClass(“活动”);
$(此).addClass(“活动”);
});
});
您有两个问题
首先,您没有在页面中包含,因此当JS运行时,它会抛出一个错误,因为没有定义$
如果要修复,则事件顺序如下:
活动的类放入新页面的HTML中。您有两个问题
首先,您没有在页面中包含,因此当JS运行时,它会抛出一个错误,因为没有定义$
如果要修复,则事件顺序如下:
点击链接
JavaScript开始运行
JavaScript修改页面的DOM
JavaScript结束
浏览器跟随链接
已修改DOM的页面将被丢弃
将加载一个新页面
…而且新页面没有被JavaScript修改
将active
类放入新页面的HTML中。您必须检查页面url并在元素中匹配href,然后将class active添加到相应的元素中
您必须包括jQuery库
将test.html page2.html替换为您拥有的页面名称
$(document).ready(function() {
var pageURL = $(location).attr('href'),
pageName= [ /test.html/, /page2.html/, /page3.html/],
links = $('a'),
LinksToActive;
for( var i=0; i < $(pageName).size(); i++){
for( var j=0; j < $(links).size(); j++){
var str = $(links[j]).attr('href');
if( 'str:contains(pageName[i])' ){
LinksToActive = $(links[j]);
break;
}
else{
continue
}
}
}
$(LinksToActive).addClass('active');
});
$(文档).ready(函数(){
var pageURL=$(位置).attr('href'),
pageName=[/test.html/,/page2.html/,/page3.html/,],
链接=$('a'),
链接活跃;
对于(var i=0;i<$(pageName).size();i++){
对于(var j=0;j<$(links).size();j++){
var str=$(links[j]).attr('href');
if('str:contains(pageName[i])){
LinksToActive=$(links[j]);
打破
}
否则{
持续
}
}
}
$(LinksToActive).addClass('active');
});
在pageName变量nad中更改/添加页面名称。在关闭body标记之前,您必须检查元素中的页面url和匹配href,并向相应元素添加活动类
您必须包括jQuery库
将test.html page2.html替换为您拥有的页面名称
$(document).ready(function() {
var pageURL = $(location).attr('href'),
pageName= [ /test.html/, /page2.html/, /page3.html/],
links = $('a'),
LinksToActive;
for( var i=0; i < $(pageName).size(); i++){
for( var j=0; j < $(links).size(); j++){
var str = $(links[j]).attr('href');
if( 'str:contains(pageName[i])' ){
LinksToActive = $(links[j]);
break;
}
else{
continue
}
}
}
$(LinksToActive).addClass('active');
});
$(文档).ready(函数(){
var pageURL=$(位置).attr('href'),
pageName=[/test.html/,/page2.html/,/page3.html/,],
链接=$('a'),
链接活跃;
对于(var i=0;i<$(pageName).size();i++){
对于(var j=0;j<$(links).size();j++){
var str=$(links[j]).attr('href');
if('str:contains(pageName[i])){
LinksToActive=$(links[j]);
打破
}
否则{
持续
}
}
}
$(LinksToActive).addClass('active');
});
在pageName变量nad中更改/添加页面名称,并在关闭body tag之前使用此脚本是否链接了所有内容?CSS的JS和jQuery?
和JS的
是HTML文件中的链接。控制台中的任何错误
?之所以会发生这种情况,是因为该链接会将您带到另一个页面,这会使CSS和jQuery重新开始。我不知道如何链接jQuery@安德烈,你把一切都联系起来了吗?CSS的JS和jQuery?
和JS的
是HTML文件中的链接。控制台中的任何错误
?之所以会发生这种情况,是因为该链接会将您带到另一个页面,这会使CSS和jQuery重新开始。我不知道如何链接jQuery@AndrewL.将活动类放在新页面的HTML中
,但这是一个完全不同的代码,因为您不知道您单击的链接是谁。因此,您可以尝试通过location.href
来了解它,例如($('[href='+location.href+']')
)。()在这里工作,但实际上并不是您的意思@MoshFeu@MoshFeu-我说的是“在HTML中”。如果html文件是静态的,您不需要用JavaScript来解决它。@Quentin。在大多数情况下,情况并非如此。。但这与问题无关。@Bob-这是同一个URL。它有CSS。它有JS。与问题中的代码不同,它有jQuery。它没有HTML。将活动类放在新页面的HTML中
,但这是一个完全不同的代码,因为您不知道在它上单击的链接是谁。因此,您可以尝试通过location.href
来计算它,例如($('[href=”)+