这几天一直纠结于一个html页面上的bug, 我们前台框架是ICEFaces3.1, 这些无所谓,翻译出来都是html标签
问题表述: 情况是我的一个div里套了很多ul和li标签,我在这个外层的div里放了一个onmouseout鼠标事件,很简单的情况,然而在测试期间发现,当鼠标移动到这个div内部的任意元素上时,外层div的onmouseout事件竟然也被触发了,这个问题困扰了我已经有2天了,一直没有找到解决办法,昨天在网上搜了半天,发现其实有不少开源js框架里已经解决了这个问题。
解决方案: 主要思想就是,将这个onmouseout事件触发的函数使用onmouseout调用并传入一个很短的时间,同时在这个div里加入一个onmouseover事件,在onmouseover时调用一个clearTimeout函数将它remove掉,即可解决。
举例:
<div onmouseout="doSomethingDiv();" onmouseover="clearTime();">
//内部一大堆元素...
<ul>
<li>....</li>
</ul>
</div>
面对这种div内部元素也会触发外部onmouseout动作的情况,需要添加一个setTimeout和clearTimeout方法,相当于在内部触发onmouseout事件之前便将它clear掉:
var t;
//在这里调用setTimeout方法让它在一段很短的时间后执行
function doSomethingDiv(){
t = setTimeout('doSomeFunc()',400);
}
//将setTimeout事件remove掉
function clearTime(){
clearTimeout(t);
}
效果不错,是个很聪明的办法.
分享到:
相关推荐
1. **定义事件响应**:在HTC文件中,你可以定义事件监听器,比如`<PUBLIC:ATTACH>`标签,用于绑定事件(如`onmouseover`, `onmouseout`, `onmousedown`, `onmouseup`)到相应的处理函数(如`glowit()`, `noglow()`, ...
### Jquery AutoComplete组件+Ajax实现...4. **事件绑定与Ajax调用**: - 使用keyup事件监听用户输入。 - 通过Ajax发送请求到后端处理程序。 - 处理后端返回的数据,并显示在页面上。 ```html <!-- 引入jQuery --> ...
这些事件可以调用服务器端的方法,通过AJAX请求发送数据,并接收响应,从而实现实时更新和交互。 4. **服务器端逻辑**:在服务器端,编写处理AJAX请求的代码,这通常涉及后端数据的查询或修改,以及返回JSON格式的...
为了让侧边栏在鼠标悬停时显示,我们使用 JavaScript 监听 `onmouseover` 和 `onmouseout` 事件。当鼠标进入 `div1` 时,调用 `startmove` 函数,使侧边栏向右移动;当鼠标离开时,调用 `startmove` 函数,让侧边栏...
根据题目中给出的部分内容,可以看出HTML部分定义了一个包含多个`<div>`元素的容器,每个`<div>`内部嵌套了一个链接和一张图片。这些`<div>`被设置为不同的显示状态(`display: block`或`display: none`),从而控制...
关键的图片转换效果在于HTML结构,特别是`<table>`元素及其内部的`<div>`。每个`<div>`元素都包含一个`<a>`链接和一个`<img>`图片,其中图片的高度和宽度被固定,并通过CSS的`display`属性控制其显示与隐藏。在初始...
3. **添加事件监听**:为`marquees`添加`onmouseover`和`onmouseout`事件,用于控制滚动的启停,增强用户体验。 4. **初始化滚动内容**:通过创建一个不可见的临时层`templayer`,复制原始内容至其中,直至其高度...
视频元素`<video>`需要绑定事件处理器,如`onMouseOver`和`onMouseOut`,以及`muted`属性以默认静音,并设置`loop`属性为循环播放。同时,创建一个进度条组件,这里使用了Element UI的`<el-slider>`。 ```html <div...
在Vue组件的`<script>`部分,我们需要定义组件的属性和方法。`address`用于存储当前输入的地址,`map1`和`map`用来保存地图对象和经纬度信息,`poiArr`用于存储搜索结果,`windowsArr`和`marker`分别用于管理信息...
同时,随着前端框架如React、Vue和Angular的流行,无缝滚动也可以通过这些框架的插件或组件来实现,提供更丰富的功能和更好的性能。 总结来说,图片无缝滚动是通过JavaScript实现的一种网页动态效果,它通过巧妙的...
理解HTML的基本标签如`<head>`(用于设置页面元数据)、`<body>`(包含页面可见内容)、`~<h6>`(标题标签)、`<p>`(段落)、`<a>`(超链接)、`<img>`(图像)和`<div>`(布局容器)至关重要。 【CSS样式控制】 ...
在这个过程中,可能会用到一些事件处理函数,如onmouseover、onmouseout、onclick等。 综上所述,实现一个功能完整的电脑虚拟键盘涉及到HTML页面结构布局、CSS样式设计以及JavaScript交互逻辑的编写。在布局方面,...
HTML部分,定义了一个`<div>`(ID为`showdiv`)作为图片显示区域,内含一个表格`<table>`,表格中有两行`<tr>`,第一行包含一个单元格`<td>`,显示大图`<img>`(ID为`big`),第二行包含四个单元格,每个单元格显示...
输入框`#word`通过`onkeyup`事件监听用户的键盘输入,当用户按键时调用`checkword()`函数。`#showmenu`是用于显示匹配字符列表的div,初始状态为隐藏。 JavaScript部分是实现自动匹配的关键: ```javascript ...
7. **事件处理**:为每个省份图形绑定`onmouseover`、`onmouseout`和`onclick`事件,实现图形的高亮和点击反馈。 8. **数据绑定**:如果需要动态展示统计数据,可以通过Vue的数据绑定将省份数据与图形关联,实现在...
- **交互反馈**:通过`onmouseover`和`onmouseout`事件,改变鼠标悬停在建议项上时的样式,增强用户体验。 - **选择事件**:当用户选择一个建议项时,调用`setValue`方法,将选中的值设置到输入框中,并隐藏建议...
HTML结构包括一个ID为`coolmenu`的`div`元素,其中包含多个链接`a`元素,每个链接都有`onMouseover`和`onMouseout`事件,分别调用`showtext`和`hidetext`函数。`#tabledescription`元素用于存放提示文本。 **运行...
为此,我们可以为轮播图的外层容器添加`onmouseover`和`onmouseout`事件监听器。 以下是一个简化的示例代码: ```html <!DOCTYPE html> <html lang="en"> 无限循环轮播图 <!-- CSS样式省略 --> <!-- 轮播...