ext 3.2 tree 在IE10中点击事件失效的bug

ext3.2 中的tree在IE中进行兼容性测试,遇到IE10时,无法点击,其他版本的IE(7、8、9、11)均正常。此bug是由于ext-all.js中的getAttributeNS方法不能兼容IE10出错引起的,下载了ext3.4,这里的getAttributeNS 被重写了,将3.4中的方法写入3.2中的ext-all.js文件中,IE10中tree恢复正常。

修改前:

getAttributeNS: Ext.isIE ?
        function(s, q) {
            var t = this.dom,
            r = typeof t[s + ":" + q];
            if (!Ext.isEmpty(r) && r != "unknown") {
                return t[s + ":" + q]
            }
            return t[q]
        }: function(r, q) {
            var s = this.dom;
            return s.getAttributeNS(r, q) || s.getAttribute(r + ":" + q) || s.getAttribute(q) || s[q]
        }

修改后:

getAttributeNS: function(m, l) {
            return this.getAttribute(l, m)
        },
        getAttribute: (function() {
            var p = document.createElement("table"),
            o = false,
            m = "getAttribute" in p,
            l = /undefined|unknown/;
            if (m) {
                try {
                    p.getAttribute("ext:qtip")
                } catch(n) {
                    o = true
                }
                return function(q, s) {
                    var r = this.dom,
                    t;
                    if (r.getAttributeNS) {
                        t = r.getAttributeNS(s, q) || null
                    }
                    if (t == null) {
                        if (s) {
                            if (o && r.tagName.toUpperCase() == "TABLE") {
                                try {
                                    t = r.getAttribute(s + ":" + q)
                                } catch(u) {
                                    t = ""
                                }
                            } else {
                                t = r.getAttribute(s + ":" + q)
                            }
                        } else {
                            t = r.getAttribute(q) || r[q]
                        }
                    }
                    return t || ""
                }
            } else {
                return function(q, s) {
                    var r = this.om,
                    u, t;
                    if (s) {
                        t = r[s + ":" + q];
                        u = l.test(typeof t) ? undefined: t
                    } else {
                        u = r[q]
                    }
                    return u || ""
                }
            }
            p = null
        })()

修改前效果:

修改后效果:

ext 3.2 tree 在IE10中点击事件失效的bug

时间: 2024-10-11 07:11:49

ext 3.2 tree 在IE10中点击事件失效的bug的相关文章

iOS Safari 中点击事件失效的解决办法

问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 可以使用下面的代码在 iOS 中进行测试. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content=&qu

Android中点击事件的四种写法详解

Android中点击事件的四种写法使用内部类实现点击事件使用匿名内部类实现点击事件让MainActivity实现View.OnClickListener接口通过布局文件中控件的属性 第一种方法:使用内部类基本步骤如下: 新建一个MyOnClickListener类并实现View.OnClickListener接口 重写View.OnClickListener接口中的OnClick(View view)方法 给Button绑定一个监听器,并监听一个点击事件示例代码如下: public class

ios移动端浏览器点击事件失效的解决方案

点击事件失效的原因可能是因为,你用了事件代理了, 比如这样 $(document).on("click",".fd",function(){ }) 这段代码在安卓机上是没有问题的,但是iso的自带浏览器和微信浏览器和其他浏览器都会失效,原因是ios规定,事件代理的元素只能是button元素其他一律不生效 想要解决这个问题,也很简单 1. $(document).on("click","button",function(){ }

jQuery模拟鼠标点击事件失效的问题

最近使用jQuery操作浏览器获取数据,需要对分页的信息进行处理,发现直接使用$('div#pager a.next').click();的这种写法无法触发点击事件. 使用trigger('click')的写法也是无济于事. 在网上一顿扒拉后,发现使用$('div#pager a.next')[0].click();就OK了. $('div#pager a.next')[0]这种写法其实就相当于把jQuery对象转换为Dom对象了. 模拟点击不生效的原因 如果使用jQuery的写法:$('a#t

[转]iOS Safari 中click点击事件失效的解决办法

iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法 解决办法有 4 种可供选择: ?将 click 事件直接绑定到目标?元素(??即 .target)上 将目标?元素换成 

android中listview点击事件失效的灵异事件

首先说明一下我想实现的功能: 点击某个item之后,让其颜色发生变化.如果变化网上有很多例子,我就不班门弄斧了.Listview之所以点击没有反应是因为上图中绿色部分(自己定义的一个继承BaseAdapter的adapter来适应listview)将listview的item覆盖了.现在点击的只是自定义的adapter中的convertView. 其次,自定义的adapter中包含一个ImageView和二个TextView.代码如下: <?xml version="1.0" e

angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)

<div cacModule.controller('CacScriptEditCtrl', CacScriptEditCtrl); CacScriptEditCtrl.$inject = ['$uibModalInstance', '$scope', '$compile', '$scope', 'cacScriptService', 'messageService', 'entity']; function CacScriptEditCtrl($uibModalInstance, $scope

ListView点击事件失效(item里面有button按钮控件)解决方法

ListView点击事件失效解决方法: 一般出现这个情况,就是你的item里面有按钮的点击事件,你的item里面有button控件,button控件是抢占焦点的,只要在你的item布局里面这样子写就可以了: <Button android:layout_width="140px" android:layout_height="56px" android:text="按钮" android:textSize="28px"

页面中点击事件在循环生成列表中的问题

循环生成的列表中点击某行click事件,会莫名其妙的出现其他行的数值 解决方法:需要在click事件加上.unbind('click') 原文地址:https://www.cnblogs.com/mangwusuozhi/p/9728818.html