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(' ...
随机推荐
- sed 查找文件的某一行内容
1,查找文件text中第三行的内容 命令: sed -n '3p' text 2,查找文件text中第二行到第四行的内容 命令: sed -n '2,4p' text
- centos下Django+uwsgi+nginx
本篇章主要讲解uwsgi和nginx的作用,并利用两者对django项目进行部署 一.概述 在开发过程中,我们一般是在该项目的虚拟环境中启用django自带的web服务:python manage.p ...
- Oracle——DQL、DML、DDL、DCL
1.DQL:数据查询语言 基本结构:由select.from.where组成 子句组成的查询块: SELECT <字段名表> FROM <表或视图名> WHE ...
- MFC界面相关源码
这是这4篇MFC界面的相关源码.建议学习Visual C++的看看这2本微软官方出的教材. [MFC Windows程序设计(第2版,修订版)](美)Jeff Prosise著 [Windows程序设 ...
- 关于Java中IO流的练习
练习一:统计一个文件calcCharNum.txt中字母‘A’和'a'出现的总次数. package com.test; import java.io.File; import java.io.Fil ...
- LeetCode算法题-Construct String from Binary Tree(Java实现)
这是悦乐书的第273次更新,第288篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第141题(顺位题号是606).构造一个字符串,该字符串由二叉树中的括号和整数组成,并具 ...
- 一个数据源demo
前言 我们重复造轮子,不是为了证明我们比那些造轮子的人牛逼,而是明白那些造轮子的人有多牛逼. JDBC介绍 在JDBC中,我们可以通过DriverManager.getConnection()创建(而 ...
- 第一节 anaconda+jupyter+numpy简单使用
数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 数据分析三剑客:Numpy,Pandas,Matplotlib 一 Anaconda 1 下载 官网:http ...
- leetcode 5 查找最长的回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- [LeetCode] 6. Z 字形变换
题目链接:(https://leetcode-cn.com/problems/zigzag-conversion/) 题目描述: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列 ...