通过event对象的fromElement属性解决热区设置主实体的一个bug

点击“设为主实体”这个超链接后,原来的提示框会变色,而且会显示内容:“已经设置为合并主实体”。
  问题:当a热区的提示框上的超链接下面有另一个热区b的时候,点击a热区提示框的超链接后,会触发b热区的mouseover事件,导致a热区的提示框会消失。
  这个问题我苦思了好久也找不到解决方法,上星期周俊提示我可以检测一下事件的来源元素。我突然想到IE的event对象有一个属性 fromElement,测试了一下,果然在点击a热区提示框的超链接后,b热区的mouseover事件里的fromElement为null,这样就好办了,在显示热区的提示框的函数里,判断一个fromElement是否为null,如果为null则return。至此问题解决,虽然这个 fromElement只存在于IE的event中。

(0)

相关推荐

  • 通过event对象的fromElement属性解决热区设置主实体的一个bug

    点击"设为主实体"这个超链接后,原来的提示框会变色,而且会显示内容:"已经设置为合并主实体". 问题:当a热区的提示框上的超链接下面有另一个热区b的时候,点击a热区提示框的超链接后,会触发b热区的mouseover事件,导致a热区的提示框会消失. 这个问题我苦思了好久也找不到解决方法,上星期周俊提示我可以检测一下事件的来源元素.我突然想到IE的event对象有一个属性 fromElement,测试了一下,果然在点击a热区提示框的超链接后,b热区的mouseover事

  • Vuex给state中的对象新添加属性遇到的问题及解决

    目录 Vuex给state中的对象新添加属性遇到的坑 向vuex对象中增加新的属性需要注意 总结 Vuex给state中的对象新添加属性遇到的坑 state.js中有一个空对象obj: export default {   ...   obj: {} } 在App.vue中点击“给空对象增加属性”按钮,触发事件addObjAttr: <template>   <div id="app">     ...     <button @click="a

  • MongoDB用Mongoose得到的对象不能增加属性完美解决方法(两种)

    一,先定义了一个goods(商品)的models var mongoose = require('mongoose'); var Schema = mongoose.Schema; var productSchema = new Schema({ "productId":String, "producName": String, "salePrice":Number, "productImage":String }); mod

  • 解决vue A对象赋值给B对象,修改B属性会影响到A的问题

    实际在vue中 this.A = this.B,没有进行深层赋值,只是把this.A的地址指向了与this.B相同的地址,所有对于A的修改会影响到B. 解决相互影响的思路是在this.A必须是新建的一个对象,这样才能保证不被指向同一地址,属性修改不会相互影响. 解决方式: this.A=JSON.parse(JSON.stringify(this.B)); 将对象转成字符串剔除对象属性后,再转换成对象赋值,这样能解决指向相同地址修改会相互影响的问题. 以上这篇解决vue A对象赋值给B对象,修改

  • JavaScript event对象整理及详细介绍

    Event属性和方法: 1. type:事件的类型,如onlick中的click: 2. srcElement/target:事件源,就是发生事件的元素: 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下:(firefox中 0代表左键,1代表中间键,2代表右键) 4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置:(在DOM标准中,这两个属性值都不考虑

  • javascript Event对象详解及使用示例

    Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态.一旦事件发生,便会生成Event对象,如单击一个按钮,浏览器的内存中就产生相应的 event对象. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. [event属性]: altKey, button, cancelBubble, clientX, clien

  • js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍

    IE 左键是 window.event.button = 1 右键是 window.event.button = 2 中键是 window.event.button = 4 没有按键动作window.event.button = 0 Firefox 左键是 event.button = 0 右键是 event.button = 2 中键是 event.button = 1 没有按键动作 event.button = 0 Opera 7.23/7.54 鼠标左键是 window.event.but

  • JavaScript让IE浏览器event对象符合W3C DOM标准

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

  • 让Firefox支持event对象实现代码

    通常为了兼容IE与FireFox,一般的事件处理方法为: 复制代码 代码如下: btn.onclick=handle_btn_click; function handle_btn_click(evt){ if(evt==null)evt=window.event;//IE //处理事件. } 对于简单的程序,这不算麻烦. 但对于一些复杂的程序,某写函数根本就不是直接与事件挂钩的.如果要把event传进该参数,那么所有的方法都要把event传来传去..这简直就是噩梦. 下面介绍一个解决这个麻烦事的

  • js window.event对象详尽解析

    event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. <HTML> <HEAD><TITLE>Cancels Links</T

随机推荐