`

Javascript 事件转移

阅读更多


我遇到的Javascript 现象总结  

1.事件转移。

 刚开始我用 var menu = window.event.srcElement; 来取得事件来源对象,事件是tr上的一个onclick事件,但是

在IE下其获取到的对象是该tr下的中间那个td对象。当然这个方法暂时在FIREFOX下不兼容。要解决这个兼容性问题。只要

个方法带个参数就好了,比如this,或者event……

2.在IE下DOM编程正常取到的对象在FIREFOX下变了。

 当时觉得奇怪,而后调试发现:这个问题实在是firefox不对啦。他将无意义无必要的空白解释成了子节点。
比如说<tr><td>1</td> <td>2</td></tr> 在IE下我们发现其子节点为2个。但是在firefox下,他理解为5个。“#text”表

示文本(实际是无意义的空格和换行等)在Firefox里也会被解析成一个节点。这里我们可以用判断tagName来确定是否正确

,也可以用getElementsByTagName方法来弥补。lastChild firstChild 这些方法自然都发生了转移……使用的话小心哦。

比如为了达到兼容。我添加了一些判断。

 while(oIMG.tagName != "IMG" )
 {
  oIMG = oIMG.previousSibling;
 }

3.实现图片变化效果,我原来用src动态改变。因为刚开始是用了一堆代码。
 var menu = oObj;
 //该TR 下的 TD 组
 var aTD = oObj.getElementsByTagName("TD");
 var len = aTD.length;
 //最后一TD对象
 //lastchild 以及 firstchild 属性 在ff ie中不统一
 //var oTD = oObj.lastChild;
 var oTD = aTD[len-1];
 //alert(oTD.innerHTML);
 //最后一IMG对象
 var oIMG = oTD.lastChild;
 while(oIMG.tagName != "IMG" )
 {
  oIMG = oIMG.previousSibling;
 }
    if (oIMG.src.indexOf("Triumph_1") != -1)
    {
  oIMG.src = oIMG.src.replace(/Triumph_1/g, "Triumph_2");
 }
感觉臃肿。

但是觉得每次这样怪麻烦,于是用innerHTML:
   if (menu.innerHTML.indexOf("Triumph_1") != -1)
    {
  var temp = menu.innerHTML.replace(/Triumph_1/g, "Triumph_2");
  menu.innerHTML = temp;
 }
结果发现不行。为什么呢? 

分享到:
评论

相关推荐

    asp.net中TextBox获得焦点和失去焦点——客户端JavaScript事件

    2. `blur`事件:当TextBox失去焦点,即用户离开文本框,焦点转移到其他元素时,会触发这个事件。这通常用于输入验证、隐藏提示信息或者保存临时数据。 ```javascript // JavaScript代码示例 document....

    JavaScript表单相关事件.pdf

    本篇文章主要探讨了JavaScript中的两个关键表单事件:获得焦点事件(onfocus)和失去焦点事件(onblur),以及一个关联的失去焦点内容改变事件(onchange)。 1. 获得焦点与失去焦点事件 `onfocus`事件在用户将...

    JavaScript基础教程第8版

    书中从JavaScript语言基础开始,分别讨论了图像、框架、浏览器窗口、表单、正则表达式、用户事件和cookie,并在上一版的基础上新增了两章,讲述jQuery框架的基础知识。本书不仅介绍了基础知识和使用方法,也深入探讨...

    JavaScript Web Application

    然而,要实现这种体验并非易事,需要将原本在服务器端处理的复杂逻辑转移到客户端执行。 ##### 3.1 JavaScript 在客户端的角色 - **数据处理**:JavaScript 可以在客户端对数据进行处理,减少服务器负载。 - **...

    图灵机状态机识别abcd问题的javaScript实现,javascript,简易可视化,可以echart显示状态转移图

    JavaScript代码会模拟图灵机的运行过程,逐个处理输入符号,根据状态转移规则更新状态和工作带。在这个实现中,为了提高用户体验,还采用了ECharts库进行可视化。ECharts是百度开源的一个轻量级的图表库,能够方便地...

    javascript经典特效---下雨.rar

    此外,为了提高性能和减少对主线程的影响,可能需要使用Web Workers或者将计算任务转移到GPU,比如通过CSS3的`translate3d`属性。Web Workers可以在后台线程运行脚本,避免阻塞用户界面,而GPU加速可以减轻CPU负担,...

    JavaScript异常处理

    JavaScript异常处理是编程中至关重要的一个环节,它用于管理和修复代码执行过程中可能出现的错误或异常情况。异常处理机制使得程序能够在遇到错误时不会立即终止,而是有机会进行适当的恢复或者给出反馈,增强了程序...

    续上Javascript 操作 ACCESS ---- 邮编查询系统v1.0

    在实际应用中,为了跨平台兼容性和安全性,现代Web开发倾向于使用Ajax或者前后端分离的方式,将数据库操作转移到服务器端进行。然而,这个邮编查询系统v1.0作为教学或小型项目示例,通过JavaScript直接操作Access...

    学习如何在事件驱动的JavaScript API中自动侦听并查找错误模式_Learning how to listen Auto

    在事件驱动的JavaScript API中,自动侦听和查找错误模式是一项关键技能,这对于确保应用程序的稳定性和可靠性至关重要。JavaScript作为一种广泛使用的开发语言,不仅在前端处理用户界面(UI)事件和AJAX请求方面发挥...

    Blink in JavaScript

    文档还通过一些例子,如XSLT、编辑命令execCommand()、编辑APIs、ScriptRegexp、Node.normalize()和DOMWindow.atob()/btoa()来说明哪些DOM特性可以从C++转移到JavaScript实现。 Blink-in-JavaScript的目标是改善...

    javascript框架的优缺点

    但ExtJS的缺点是页面加载速度慢,因为它将大量处理转移到客户端,这可能对服务器端功能造成限制,且开发速度相对较慢。 总的来说,每个JavaScript框架都有其独特的优势和适用场景,开发者需要根据项目需求、性能...

    JavaScript——Ajax

    1. **元素转移.html**:可能涉及到DOM操作,如移动或复制页面元素,这在响应Ajax请求后更新页面内容时非常常见。 2. **级联菜单.html**:可能展示了如何利用Ajax动态加载下拉菜单的选项,当用户选择某个菜单项时,...

    IoC和Javascript

    5. **控制反转**:控制权从代码转移到了容器,对象不再负责其依赖的创建和管理。 压缩包内的文件可能是关于这个主题的讲座材料或笔记,包括PPT演示文稿(.key和.pdf格式)。这些文件可能深入探讨了IoC在JavaScript...

    一种JavaScript矢量类型带有GLSL启发式转换

    GLSL启发式转换则将这些计算任务转移到GPU上,提高了性能,因为GPU可以同时处理大量数据,而CPU通常更适合执行顺序和复杂的逻辑任务。 在“vekta-master”这个压缩包中,很可能是包含了一个名为Vekta的库或框架,它...

    javascript客户端验证和页面特效制作

    监听键盘事件,当检测到回车键时,使用 JavaScript 自动将焦点转移到下一个输入框。 ##### 三、制作输入提示特效 使用 JavaScript 监听输入框的变化,在用户输入时显示提示信息。 ##### 四、制作内容动态改变的层...

    数据结构与算法-JavaScript描述

    11. **动态规划**:通过构建状态转移方程来解决最优化问题,如背包问题、最长公共子序列等。 12. **贪心算法**:每次选择局部最优解,以期望达到全局最优,例如活动安排问题。 这本书对于希望提升JavaScript编程...

    javascript、jQuery调用webservice实现的天气预报

    接着,jQuery 是一个 JavaScript 库,它简化了许多常见的 JavaScript 任务,如 DOM 操作、事件处理和 AJAX 交互。在这个项目中,jQuery 可能用于优化和简化 AJAX 调用,以及高效地更新 DOM 元素。例如,使用 `$.ajax...

    ASP.NetCoreSignalRWeb客户端_JavaScript_CSS_下载.zip

    - 对于大型应用,SignalR支持负载均衡和故障转移,可以适应高并发和大规模用户。使用SignalR Scaleout方案,如Azure SignalR Service,可以扩展到云环境。 通过这个压缩包中的源代码,开发者可以深入理解ASP.NET ...

    javascript实现的工作流

    4. **事件驱动编程**:JavaScript的异步特性使得它非常适合处理工作流中的事件。当一个任务完成或者满足某个条件时,可以触发一个事件,启动下一个任务。事件监听器负责响应这些事件,执行相应的动作。 5. **数据...

Global site tag (gtag.js) - Google Analytics