JavaScript与jQuery关于鼠标点击事件

即实现鼠标点击其中一个菜单发生样式的改变,当点击下一个菜单时,当前菜单样式改变,其他菜单均变为之前样式。
用JavaScript,jQuery都可以实现,只是后者是封装的JavaScript库,具有sibling()方法,可以直接使其同胞元素取消样式,而JavaScript需要使用循环来使其上一菜单样式取消,当前菜单加上样式。
实现代码:
1.JavaScript:
当点击当前菜单时,上一菜单样式取消,当前菜单增加该样式,为了下一菜单的实现,须将:onum = this;将当前li对象赋予onum。
this相当于是当前li对象。
<script>
var arr = document.getElementsByTagName("li");
var i,num = 0;
onum = arr[num]; for(i in arr){
arr[i].onclick = function(){
onum.className = ' ';
this.className = "active";
onum = this;
}
} </script>

2.jQuery:
使用sibling()方法来使当前元素的同胞元素都取消该样式。
this表示当前元素。
<script>
$("li").click(function(){
$(this).addClass("active").siblings().removeClass("active");
});
</script>

如此看来,jQuery是要比JavaScript简便一些,但jQuery思想还是使用的JavaScript思想,并未改变。
完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
padding:0px;margin:0px;
list-style:none;
}
.box{
width: 400px;
height: 50px;
background-color: antiquewhite;
}
.box ul li{
height: 50px;
width: 25%;
line-height: 50px;
display: block;
float: left;
text-align: center;
}
ul li:hover{
cursor: pointer;
}
.active{
background:red;
}
</style>
</head>
<body>
<div class="box">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<script>
var arr = document.getElementsByTagName("li");
var i,num = 0;
onum = arr[num]; for(i in arr){
arr[i].onclick = function(){
onum.className = ' ';
this.className = "active";
onum = this;
}
} </script>
</body>
</html>
JavaScript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
padding:0px;margin:0px;
list-style:none;
}
.box{
width: 400px;
height: 50px;
background-color: antiquewhite;
}
.box ul li{
height: 50px;
width: 25%;
line-height: 50px;
display: block;
float: left;
text-align: center;
}
ul li:hover{
cursor: pointer;
}
.active{
background:red;
}
</style>
</head>
<body>
<div class="box">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<script>
var arr = document.getElementsByTagName("li");
var i,num = 0;
onum = arr[num]; for(i in arr){
arr[i].onclick = function(){
onum.className = ' ';
this.className = "active";
onum = this;
}
} </script>
</body>
</html>
jQuery
注意:
在jQuery使用时需要引入本地库文件,或者使用那个网址也可以
JavaScript与jQuery关于鼠标点击事件的更多相关文章
- jQuery模拟鼠标点击事件失效的问题
		最近使用jQuery操作浏览器获取数据,需要对分页的信息进行处理,发现直接使用$('div#pager a.next').click();的这种写法无法触发点击事件. 使用trigger('click ... 
- JS控制鼠标点击事件
		鼠标点击事件就是当鼠标点击元素时,就会出现另一个窗口,类似于百度首页中右上角的“登录”这个按钮,当鼠标点击 登录时,就会出现登录窗口.大体的意思就是这样,直接上代码了,简单易懂. <!DOCTY ... 
- css禁用鼠标点击事件
		css禁用鼠标点击事件 .disabled { pointer-events: none; } <div class="main-container disabled"> ... 
- jquery中交替点击事件toggle方法的使用示例
		jquery中交替点击事件toggle方法中有两个参数,分别是要交替执行的事件.如果不传参默认是显示隐藏功能,下面有个不错的示例,感兴趣的朋友可以参考下 复制代码代码如下: $('#clickId‘) ... 
- MacOS获取辅助功能权限控制鼠标点击事件
		昨晚玩一个模拟经营的游戏,由于升级太慢我就不停的种树卖树来换取经验值.不过重复点击10几分钟后,实在受不了.网上本来准备找个鼠标自动点击的软件用用.结果没找到趁手的.如是自己写了个. 自己设置需要点击 ... 
- 基于jQuery CSS3鼠标点击动画效果
		分享基于jQuery CSS3鼠标点击动画效果支持图片或内容滑动,允许设置动画延迟效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="co ... 
- js和jquery触发按钮点击事件
		js触发按钮点击事件 function load(){ //下面两种方法效果是一样的 document.getElementById("target").onclick(); do ... 
- 每天一个JavaScript实例-铺货鼠标点击位置并将元素移动到该位置
		<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ... 
- Echarts如何添加鼠标点击事件?防止重复触发点击事件
		Echarts如何添加鼠标点击事件? 1.通常我们只使用了以下代码,通过配置项和数据显示图表. var myChart = echarts.init(document.getElementById(' ... 
随机推荐
- access denied for user 'root'@'localhost'(using password:YES)   FOR WINDOWS
			以windows为例: mysql5.5 1. 关闭正在运行的MySQL服务. 2. 打开DOS窗口,转到mysql\bin目录. 3. 输入mysqld --skip-grant-tables 回车 ... 
- SourceTree下载bitbucket代码
			SourceTree安装方法 下载地址:https://www.sourcetreeapp.com/ 列几个安装过程中的注意点: 根URL(Root URL):https://bitbucket.or ... 
- 浪潮服务器I4008/NX5480M4介绍
			浪潮I4008 / NX5480M4是一款高密度模块化服务器. I4008是机箱,NX5480M4是节点. 8个计算节点模块可以部署在标准机架4U高度机器里,具有高性能.低功耗.易维护.组管理功能.适 ... 
- ThinkPad E470笔记本电脑无声音、无线wifi功能(灰色)
			最近有同事找我看他的笔记本没有wifi,型号是ThinkPadE470 ,上网搜了下提问的挺多,写一个看看有什么帮助没 看了下笔记本wifi标志是灰色显示只有飞行模式,启用了一下热键 fn+F3 没什 ... 
- .Net Cache
			在.net中有两个类实现了Cache HttpRuntime.Cache 应该程序使用的Cache,web也可以用 HttpContext.Current.Cache web上下文的Cache对象, ... 
- 解决connect() failed (111: Connection refused) while connecting to upstream
			使用nginx时, 有可能遇到connect() failed (111: Connection refused) while connecting to upstream的问题. 如果upstrea ... 
- git-将dev代码合并到test
			1. 在dev分支上刚开发完项目,执行以下命令: git add git commit -m 'dev' git push -u origin dev 2.切换到test分支上 如果是多人开发,先把远 ... 
- Linux-基础学习(三)-Nginx学习
			1.nginx安装与部署 1.1 nginx入门 Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的 请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP( ... 
- 环境配置 mac安装bazel
			brew cask install homebrew/cask-versions/java8 brew install bazel 
- 深入理解Fabric环境搭建的详细过程
			博主之前的文章都是教大家怎么快速的搭建一个Fabric的环境,但是其中大量的工作都隐藏到了官方的脚本中,并不方便大家深入理解其中的过程,所以博主这里就将其中的过程一步步分解,方便大家! 前面的准备工作 ... 
