onmouseout,mouseover经过子元素也触发的问题解决方案

news/2024/5/19 19:45:35/文章来源:https://blog.csdn.net/weixin_34029680/article/details/85650547

在mouseout与mouseover的冒泡问题上,相信有很多朋友都遇到过。今天这里就总结一下

关于mouseover和mouseout冒泡问题的解决方案:  

首先,看下event.relatedTarget的用法。 

relatedTarget 

事件属性返回与事件的目标节点相关的节点。 

relatedTarget不支持IE。对于 mouseover 事件来说,该属性是鼠标指针移到目标节点上时所离开的那个节点。 

对于 mouseout 事件来说,该属性是离开目标时,鼠标指针进入的节点。

 对于其他类型的事件来说,这个属性没有用。

<div id='but_temp'><a href='#'>这里是文字</a>   <div>第二方收复失地还<br>sdfsjdlfsdjlfksdjlfksjdflk   <br>   <div>第三层第三层第三层第三层第三层第三层<br>   第三层第三层第三层第三层第三层第三层第三层</div>   <br>   </div>   </div>
 var d1 = document.getElementById('but_temp');   d1.onmouseover = mouseover_x    d1.onmouseout = mouseout_x    function mouseover_x ( ae ){   var e = window.event || ae    var s = e.fromElement || e.relatedTarget    if( document.all ){   if(  !(s == this || this.contains(s))  ){   alert("IE: 你in 了!");   }   }else{   var res= this.compareDocumentPosition(s)       if(  !(s == this || res == 20 || res == 0 )  ){   alert("FF: 你in 了 !");   }   }   }   function mouseout_x( ae ){    var e = window.event || ae;   var s = e.toElement || e.relatedTarget;      //var temp = document.getElementById('but_temp');      if(document.all){      if( !this.contains(s) ){      alert('IE: 你out 了');      }      }else{      var res= this.compareDocumentPosition(s)         if( ! ( res == 20 || res == 0) ){         alert('FF: 你out 了');      }        }     }  

今天发现JQ中关于这个问题,已经有了一个好的解决办法了.呵呵,jquery中定义了一种事件叫做"mouseleave",用这个事件做事件句柄的话,就可以解决这个问题了.越来越发现jquery是个好东西了. 方案三:

<!DOCTYPE html>
<html>
<head><title>无标题页</title><script type="text/javascript" src="http://sy.zgsapt.com/js/jquery-1.7.2.min.js"></script><script type="text/javascript">$(document).ready(function() {$("#numd").bind("mouseleave", function() {document.getElementById('keybored').style.display = 'none';document.getElementById('Nm').blur();});$("#Nm").focus(function() {document.getElementById('keybored').style.display = '';});});</script></head>
<body><ul><li><input /><div></div></li></ul><input id="hid" type="text" value="" style="display: none" /><span id="numd" style="border: 1px solid red; clear: both; display: inline-block; font: 800em;"><input type="text" id="Nm" name="Nm" value="" /><div style="display: none; border: 1px solid #A2B4C6; width: 150px; height: 400px;"id="keybored"><input type="button" value="1" onclick="document.getElementById('Nm').value+=this.value;" /></div></span>
</body>
</html>

实现这种效果很简单了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_851558.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25个精美的创意机构和设计工作室网站案例

浏览器创意机构和设计工作室为他们自己设计的网站是一件非常有趣的事情。这些人设计的网站&#xff0c;代表着整个领域的最新趋势&#xff0c;值得网页设计人员去跟随。 有人可能会认为他们会用最疯狂&#xff0c;过于超前的设计。但你会惊讶地知道&#xff0c;这些创意机构和设…

个人网站盈利的几种方式

之前看到一篇讲述个人网站盈利的10种方法的文章&#xff0c;原文在这里&#xff1a;http://www.sitepoint.com/10-ways-earn-money-from-your-site/ &#xff0c;但不太适合中国国情&#xff0c;不够接地气。本文就说几个接地气的个人网站盈利的几种方法。(主要针对IT个人网站)…

大型网站系统架构演化之路

大型网站系统架构演化之路 前言 一个成熟的大型网站&#xff08;如淘宝、天猫、腾讯等&#xff09;的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的&#xff0c;它是随着用户量的增加&#xff0c;业务功能的扩展逐渐演变完善的&#xff0c;在这个过程…

微网站|h5弹窗|手机网站 html5 弹窗、弹层、提示框、加载条

为了精确体验&#xff0c;您可通过Chrome设备模式浏览。或通过[url]手机扫二维码进入[/url] layer mobile是为移动设备&#xff08;手机、平板等webkit内核浏览器/webview&#xff09;量身定做的弹层支撑&#xff0c;采用Native JavaScript编写&#xff0c;完全独立于PC版的lay…

访问jira网站中已解决问题链接时跳转到另一IP的解决办法

迁移完Jira后&#xff0c;以普通用户进入jira&#xff0c;点击Jira中已解决问题的链接&#xff0c;发现跳转到的IP是迁移前的IP&#xff0c;以下为解决办法。 第一步&#xff1a;使用管理员用户进入Jira&#xff0c;点击“管理”-->"通用设置"&#xff1b; 第二步…

Wordpress 网站搭建及性能监控方法详解!

2019独角兽企业重金招聘Python工程师标准>>> ######前言 说到 Wordpress&#xff0c;大家往往想到的是博客&#xff0c;其实&#xff0c;如今的 WordPress 已经成为全球使用量最多的开源 CMS 系统。并且&#xff0c;如果你有一定的技术基础稍加改动&#xff0c;就可…

IIS 7 发布网站

1.先按F6编译通过。 2.操作如下列图上所示&#xff1a; 3. IIS 的配置 部署完毕 如有问题请留言&#xff0c;大家一起解决。

支付宝手机网站支付接口API之C#版

一、准备工作 1、使用企业支付宝签约手机网站支付 2、下载支付宝官方demo 文档地址&#xff1a;https://doc.open.alipay.com/doc2/detail?treeId60&articleId103564&docType1 下载地址&#xff1a;http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo…

JQuery仿购物网站放大镜特效所遇问题及思考

JQuery仿购物网站放大镜特效所遇问题及思考 先贴下效果图&#xff0c;然后描述起来也就不会不知道我在说什么了。 我碰到的问题一: 一开始我自己总结了是因为两个小原因导致的①使用了mouseover,mouseout事件②因为层叠样式&#xff08;z-index&#xff09;的原因。一开始的HTM…

bind、click、mouseover、mouseout及简写实现显示与隐藏效果

1、$().bind("click", function() {...........});也可以写成 $().click(function() {..........}); 2、$().bind("mouseover", function() {...........}) .bind("mouseout", function() {...........}); 也可以写成 $().mouseover(function…

如何修改XAMPP默认网站目录

XAMPP默认网站目录保存在...\xampp\htdocs文件夹下&#xff0c;修改目录步骤&#xff1a; 1.XAMPP面板&#xff0c;点击Apache服务器Config按钮&#xff0c;选择Apache&#xff08;httpd.conf&#xff09;&#xff1b; 2.在打开的记事本中&#xff0c;使用快捷键CtrlF进行查找&…

nodejs微信公众号开发——9.爬取网站素材定时推送消息

上一篇文章&#xff1a;nodejs微信公众号开发——8.群发消息&#xff0c;介绍了高级群发接口的实现&#xff0c;并通过一个简单例子加以说明。本节的内容可能和微信公众号开发本身关系不大&#xff0c;只是我小项目中涉及到的内容&#xff0c;知识点包含nodejs爬虫和定时模块。…

jQuery-鼠标事件及使用unbind移除mouseover、mouseout、mousemove绑定

$item.mouseover(function(){//鼠标滑入... }).mouseout(function(){//鼠标滑出... }).mousemove(function(){//鼠标移动... }); 如上&#xff0c;对dom绑定了鼠标事件&#xff0c;那么如何解除绑定呢&#xff1f;如下设置即可&#xff1a; $item.unbind(mouseover).unbind(m…

阿里云ECS建网站(建站)超详细全套完整图文教程!菜鸟必看!

第一步&#xff1a;如何以最低价格快速买到阿里云服务器&#xff1f; 1.1 如果我是学生&#xff0c;我如何通过&#xffe5;9.9买到价值&#xffe5;117的服务&#xff1f; 答&#xff1a;用&#xffe5;9.9购买云服务器ECS是阿里云学生专属活动。首先&#xff0c;你需要在阿里…

云服务器更换PHP版本升级的问题_升级PHP后_网站打不开

摘要&#xff1a; 升级PHP版本后网站打不开解决办法&#xff0c;切换PHP版本后网站打不开解决办法。 文章前面说一下&#xff0c;本人是小白&#xff0c;写这篇文章是因为自己解决了问题&#xff0c;高兴之余&#xff0c;是因为没有这样的文章写出来&#xff0c;可能是太基础的…

【服务器】搭建vue3+vite+koa2+mongodb网站 ----- 安装宝塔面板(步骤一)

介绍 我的是百度云的轻量应用服务器LS&#xff0c;新用户可以试用&#xff0c;百度云官网 1. 在服务器上安装宝塔面板 宝塔面板官网&#xff0c;我的服务器系统镜像是 Centos 7&#xff08;别用 Centos 8 宝塔面板会无法安装 Nginx&#xff0c;如果已经安装了 8 那就重装系统…

【服务器】搭建vue3+vite+koa2+mongodb网站 ----- 部署前端项目(步骤二)

部署前端项目 1. 前端项目打包&#xff08;npm run build&#xff09;&#xff0c;上传打包后的 dist 文件夹到服务器&#xff0c;下面是操作步骤 新建文件夹 health-web &#xff0c;根据自己项目来 打包后的 dist 文件夹内容上传至 新建的 health-web 文件夹内 2. 新建一个…

【服务器】搭建vue3+vite+koa2+mongodb网站 ----- 部署后端项目(步骤三)

部署后端项目 1. 在宝塔面板的文件中&#xff0c;新建 health-server 文件夹&#xff0c;然后上传后端代码&#xff08;千万不要上传 node_modules 文件夹&#xff09; 需要上传的文件和文件夹 上传成功后的界面 在 health_server 文件夹下&#xff0c;安装 node_modules 文…

【服务器】搭建vue3+vite+koa2+mongodb网站 ----- 使用mongodb数据库(步骤四)

使用 mongodb 数据库 在软件商店里找到 mongodb &#xff0c;点击修改 mongodb 配置&#xff0c; 允许任何机器都可以访问该数据库 使用 mongodb 客户端 MongoDB Compass 连接服务器数据库 如果刷新页面出现 404&#xff0c;可以通过配置 nginx 解决 location / {try_files …

【服务器】搭建vue3+vite+koa2+mongodb网站 ----- http变成https(步骤五)

1. 介绍 因为微信小程序请求接口需要 https&#xff0c;所以这里把 http 转换为 https 2. 申请 ssl 证书 其他免费证书 https://freessl.cn/ 因为我有百度云账号&#xff0c;这里免费申请了百度云的 ssl 证书&#xff0c;支付成功后还需要申请一下 申请成功后 下载证书&…