在小提琴完美运行,但 JQuery 对网页没有影响
In fiddle perfectly running but NO effect of JQuery on web page
我只是试图在点击时在 li 标签上添加和删除类。我尝试了小提琴,JQuery 工作正常,但相同的代码在本地主机上不起作用。 小提琴链接
这是我的页面 -
<link rel="stylesheet" href="styles.css" />
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script language="javascript">
$('#cssmenu li').on('click', function(){
$('li.active').removeClass('active');
$(this).addClass('active');
});
</script>
</head>
<body>
<div id='cssmenu'>
<ul>
<li class='active'><a href="#"><span>Home</span></a></li>
<li><a href="Untitled-1.html" target="content"><span>About Us</span></a></li>
<li><a href="#"><span>Gallery</span></a></li>
<li><a href="#"><span>Alumni</span></a></li>
<li><a href="#"><span>Events</span></a></li>
<li><a href="#"><span>Polling</span></a></li>
<li><a href="#"><span>Feedback</span></a></li>
<li class='last'><a href="#"><span>Contact Us</span></a></li>
</ul>
</div>
这是 CSS 的一部分
#cssmenu li {
float: left;
margin: 0 5px 0 0;
border: 1px solid transparent;
}
#cssmenu li a {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
padding: 8px 15px 9px 15px;
display: block;
text-decoration: none;
color: #ffffff;
border: 1px solid transparent;
font-size: 16px;
}
#cssmenu li.active {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
border: 1px solid #36b0b6;
}
#cssmenu li.active a {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
display: block;
background: #1e6468;
border: 1px solid #133e40;
-moz-box-shadow: inset 0 5px 10px #133e40;
-webkit-box-shadow: inset 0 5px 10px #133e40;
box-shadow: inset 0 5px 10px #133e40;
}
非常感谢任何输入,因为我知道我只有几步之遥,因为它已经在小提琴中做到了。
在创建该元素的 DOM 之前附加单击处理程序。将其移动到页面末尾或将其放在$(document).ready()
<script language="javascript">
$(document).ready(function(){
$('#cssmenu li').on('click', function(){
$('li.active').removeClass('active');
$(this).addClass('active');
});
})
</script>
移动这个
<script language="javascript">
$('#cssmenu li').on('click', function(){
$('li.active').removeClass('active');
$(this).addClass('active');
});
</script>
或让它在 DOMContentLoaded 上执行<body>
标签的末尾。
现在,它会在加载 DOM 之前执行,没有任何反应。
更新:
要回答您的评论,将脚本标签放在</body>
标签之后并不是真的正确,请参阅此问题
无论如何,请尝试这样做。
$(window).load(function(){
$('#cssmenu li').on('click', function(){
$('li.active').removeClass('active');
$(this).addClass('active');
});
});
相关文章:
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 同一网页中有多个javascript标记
- 用于编写与我作为客户端查看的网页交互的脚本的术语(如果有的话)是什么
- 我有一个用幻灯片制作的网页,但幻灯片会在屏幕上移动
- 有没有一种好的方法可以为网页制作预览图像
- 网页上已有tinymce加载图像列表
- 有多少人访问了特定网页
- 为什么未执行的评估对某些浏览器中的行为有影响
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 网页异步更新的方式有哪些
- AngularJS在不同的网页上有不同的ng-app
- 在小提琴完美运行,但 JQuery 对网页没有影响
- 为什么两个网页有不同的本地存储?我该如何解决这个问题
- 不同的操作系统对显示网页的影响有多大
- 如何在同一网页上有多个字符计数,而每个字符计数不会相互影响
- 在js对象中维护父引用是否有影响?
- 如何检查通过node.js如果一个网页有JS变量定义
- 一个单一的网页有一个ng-app或多个网页共享相同的ng-app
- 最小化和连接的顺序对JavaScript/CSS文件的批量处理有影响吗?
- 一个函数中的严格模式对它调用的函数有影响吗