[转载 js] YUI解决mouseout事件冒泡的办法

news/2024/5/8 13:49:48/文章来源:https://blog.csdn.net/weixin_30347335/article/details/95275386

原文出处:http://design.alibaba-inc.com/?q=node/727

========================================

YAHOO.util.Dom.isAncestor —— 给元素寻根问祖
  • 查看
  • 跟踪
小马 的头像周三, 02/13/2008 - 13:47 — 小马

语法:

YAHOO.util.Dom.isAncestor(haystack, needle)
YAHOO.util.Dom.inDocument(el)

YUI的源码里使用 haystack(草堆) 和 needle(针) 作为参数名,体现了YUI开发人员的幽默感。look for a needle in a haystack 正是大海捞针的意思。

isAncestor() 方法用来判断 haystack 元素是否是 needle 元素的父节点。它在鼠标参与的一些交互中非常有用。

我们都知道 mouseover 和 mouseout 事件,它们不方便之处在于,当鼠标在容器上滑动时,可能多次触发 mouseover 和 mouseout 事件,这增加了我们编码的复杂度。

IE支持mouseenter 和 mouseleave 事件,它们只在鼠标移到或移出容器时才触发。但其他浏览器并不支持这两个事件。但是,使用 inAncestor() 方法可以帮助我们模拟实现。看下面的例子:

//HTML 结构<div id="demo-container"> <ul id="demo-ul"> <li id="child_1"><span><span><b><b>child 1</b></b></span></span></li> <li id="child_2"><span><span><b><b>child 2</b></b></span></span></li> <li id="child_3"><span><span><b><b>child 3</b></b></span></span></li> </ul></div><div id="msg"></div>//JS$E.onDOMReady(function() { var container = $('demo-container'); var msgbox = $('msg'); //模拟 mouseenter 事件 var mouseEnterHandler = function(ev) { //relatedTarget 在mouseover事件中指向鼠标从该处移过来的元素 var rt = $E.getRelatedTarget(ev); //如果rt 不是container本身,同时也不是container的子元素,那么就是 Enter 的情况 if (rt !== container && !$D.isAncestor(container, rt)) { msgbox.innerHTML += 'Entering ...'; } msgbox.innerHTML += 'Mouse Over ...'; } //模拟 mouseleave 事件 var mouseLeaveHandler = function(ev) { msgbox.innerHTML += 'Mouse Out ...'; //relatedTarget 在mouseout事件中指向鼠标移动到的元素 var rt = $E.getRelatedTarget(ev); //如果rt 不是container本身,同时也不是container的子元素,那么就是 Leave 的情况 if (rt !== container && !$D.isAncestor(container, rt)) { msgbox.innerHTML += 'Leaving ...'; } } $E.on(container, 'mouseover', mouseEnterHandler); $E.on(container, 'mouseout', mouseLeaveHandler);});

打开范例文件。

TBra 中的TB.widget.SimplePopup 组件正是采用了上例中的实现。

isAncestor() 方法还衍生 inDocument() 方法,该方法用来判断一个元素是否存在于DOM树中,其实它就是简单的调用 isAncestor() 方法,看它的源码:

/** * Determines whether an HTMLElement is present in the current document. * @method inDocument * @param {String | HTMLElement} el The element to search for * @return {Boolean} Whether or not the element is present in the current document */inDocument: function(el) { return this.isAncestor(document.documentElement, el);},

转载于:https://www.cnblogs.com/cly84920/archive/2009/03/20/4427028.html

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

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

相关文章

如何构建高扩展性网站?

本篇通过阅读《高扩展性网站的50条原则》&#xff0c;总结出以下内容。 一方面博主没有实际的架构经验&#xff0c;另一方面知识面也不够宽阔&#xff0c;所以只能系统的总结书中的要点&#xff0c;并根据自己的理解做些归纳。 主要内容 本书从多个方面围绕高扩展性提出了50条建…

电商网站jQuery放大镜代码

分享一款电商网站jQuery放大镜代码。这是一款基于jquery.elevatezoom插件实现的类似淘宝放大镜代码&#xff0c;提供40多种参数&#xff0c;可自由配置多种效果&#xff0c;适合电商或图片类网站使用。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&…

8月上旬国内网站流量统计TOP5: 百度腾讯坚守前二

IDC评述网&#xff08;idcps.com&#xff09;08月18日报道&#xff1a;根据中国互联网协会-中国网站排名公布的最新数据显示&#xff0c;截至2015年8月16日&#xff0c;国内网站独立访问量前五位依次是百度、腾讯网、搜狗、网易、微博。详细情况如下图所示&#xff1a;观察上图…

从上百幅架构图中学得半点大型网站建设经验(上)

从上百幅架构图中学大型网站建设经验&#xff08;上&#xff09;引言近段时间以来&#xff0c;通过接触有关海量数据处理和搜索引擎的诸多技术&#xff0c;常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外&#xff0c;更为架构图背后所隐藏的设计…

cefsharp 加载网页慢_网站访问慢的排查方案(最详细)

说实话&#xff0c;比起网站打不开&#xff0c;网站访问慢更让人抓狂。因为造成网站访问慢的因素太多了&#xff0c;一般用户根本无从下手&#xff01;任他千头万绪的问题&#xff0c;从以下三个方面入手&#xff0c;也能轻松破解访问慢的大难题 &#xff1a;响应时间、执行时间…

无法从该网站添加应用_教大家如何在iOS13的iPhone苹果手机和iPad的主屏幕上添加网站...

是否想将网站直​​接放在iPhone或iPad主屏幕上&#xff0c;以实现超级便捷的访问?如果您有一个经常访问的网站(当然像osxdaily.com)&#xff0c;则可能需要将该网站添加到iPhone或iPad的主屏幕中。这会将所选网站的图标放置在设备主屏幕上&#xff0c;然后可以像其他任何应用…

[asp.net]网站数据安全之验证码

数据安全是网站实现必不可少的其中一环&#xff0c;其中最基本的就有防止暴力破解这一类的机器人攻击。 机器人攻击&#xff0c;顾名思义&#xff0c;单纯地由程序算法计算出用户名对应的密码&#xff0c;达到破解账户的功能。 机器人攻击的原理如下&#xff1a; 网页与服务器是…

定制 LAMP 网站服务平台

安装环境&#xff1a;系统&#xff1a;CentOS release 6.2 (Final)Mysql: mysql-5.1.62.tar.gz http:httpd-2.2.25.tar.gzphp: php-5.4.19.tar.gz前期准备:先将需要的软件包拖到虚拟服务器root上&#xff0c;如下图[rootlocalhost ~]# unzip LAMP.zip[rootlocalhost ~]# yum …

做网站用什么语言_给网站做外链现在还有用吗?

网站外链现在还有用吗&#xff1f;如今已经是众说纷纭的一个话题。但我想说的是这和搜索引擎发展的三个重要阶段有着紧密的联系&#xff0c;所以用处还是有的&#xff0c;但有多少呢&#xff1f;请往下仔细了解。网站外链有用吗作为一名SEO从业者&#xff0c;给网站做外链是一件…

SharePoint【表单认证方式】-- 更改现有Sharepoint网站的认证方式,让其支持FBA:01.前期准备...

之前公司开发的Sharepoint 网站使用的是Classic Mode Authentication方式(基于Windows AD方式)&#xff0c;近期的客户需求需要使这个已投入使用的Sharepoint应用不但能支持原有的AD认证方式&#xff0c;并且还要能支持Form方式。 于是问题出来了&#xff0c;一般我们在新…

html关于圣诞节主题的网页,玩转圣诞创意!10个以圣诞节为主题的优秀网站设计...

设计达人网 &#xff1a;还有9天就到圣诞&#xff0c;如果你还没有idea来做这个节日专题&#xff0c;那么今天收集的这10个圣诞节主题网站就不要放过咯&#xff0c;有大名鼎鼎的追踪圣诞老人创意&#xff0c;也有帮你自由创造圣诞老人的绘画网站&#xff0c;全都是技术与创意兼…

利用 squid 反向代理提高网站性能(转)

本文在介绍 squid 反向代理的工作原理的基础上&#xff0c;指出反向代理技术在提高网站访问速度&#xff0c;增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下&#xff0c;利用 DNS 轮询和 Squid 反向代理技术&#xff0c;实现了网站的负载均衡&#xff0c;从而…

换服务器要重新百度站长验证站点吗6,六个步骤搞定更换网站服务器

原标题&#xff1a;六个步骤搞定更换网站服务器最近又不少站长朋友发帖咨询说要更换网站的服务器了&#xff0c;但是怕误操作导致网站被K&#xff0c;因为已经有不少的站长朋友来反馈&#xff0c;说自己因为换了IP导致网站被K了。那么今天云雀运维就来跟大家谈一下&#xff0c;…

lamp部署php工程,Centos7运维(2)-第一次在Linux下部署PHP项目,采用LAMP网站架构(Linux+Apache+MySQL+PHP)...

LAMP指的Linux(操作系统)、Apache(HTTP 服务器)&#xff0c;MySQL(数据库软件) 和PHP(有时也是指Perl或Python) 的缩写&#xff0c;一般用来搭建web 服务器。(1)Mysql 5.61.下载mysql-server文件[rootCentos~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.n…

伪静态隐藏域名后缀_网站建设三部曲:域名程序+主机

怎么建设网站&#xff0c;企业外包&#xff0c;个人研究&#xff0c;做为一个建站老手&#xff0c;我给大家说一下建站的三部曲&#xff1a;域名、程序、主机。如果说有第四部和第五六步的话&#xff0c;那么就是备案、友链等。一、关于域名兄弟啊&#xff0c;注册域名还是尽早…

hishop网站迁移后出现DataProtectionConfigurationProvider错误(转)

配置错误说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。分析器错误信息: 未能使用提供程序“DataProtectionConfigurationProvider”进行解密。提供程序返回错误信息为: 该项不适于在指定状态下使用。 (异常来自 HRES…

【项目总结】扯一扯电商网站前端css的整体架构设计(1)

最近半忙不忙的写了一个外包网站&#xff0c;网站主要功能是艺术品竞拍和艺术衍生品的销售。工程已经完成了80%左右&#xff0c;现在前后端代码量已经50W行左右&#xff0c;我主要负责的是前端设计和前端布局。下面就先放一个网站的设计图吧&#xff0c;因为涉及到甲方的“商业…

tomcat找不到servlet这个类_办公中常用的模板和工具找不到?这个网站就能帮到你...

相信大家都知道我们平时办公的时候&#xff0c;需要去找一些办公类的资源&#xff0c;但是去哪里找免费的呢&#xff1f;只需要用到一个网站就够了&#xff0c;各种模板和抠图功能都有&#xff0c;总有一款适合你&#xff01;一、PPT资源1、PPT模板首先我们登陆办公资源网这个网…

化工网站开发_石油化工行业网站定制 | 石油化工产品销售网站制作

在网站建设中&#xff0c;如果想要运营好网站&#xff0c;那么一定是离不开对网站的访问信息进行收集、记录并归类&#xff0c;还要在统计这些数据的基础上进行深度分析&#xff0c;来找到网站出现的一些问题&#xff0c;从而进行整改。今天我们来具体说说网站建设中&#xff0…

Python进阶学习网站

2019独角兽企业重金招聘Python工程师标准>>> www.scipy.org 科学 数学 工程 http://www.pygame.org/lofi.html http://www.pygame.org/news.html pygame&#xff08;库&#xff09;是一个免费和开源的Python编程语言库&#xff0c;用于制作多媒体应…