zoukankan      html  css  js  c++  java
  • Ext.app.SearchField在IE8中显示异常的问题

    Ext.app.SearchField在IE8中,输入框看不见。在IE6,IE7,FF,Chrome等浏览器中都没有问题。

    研究代码发现。是因为Ext.form.TriggerField的afterRender处理程序中的一段代码造成的:

        afterRender : function(){
            Ext.form.TriggerField.superclass.afterRender.call(
    this);
            
    var y;
            
    if(Ext.isIE && !this.hideTrigger && this.el.getY() != (y = this.trigger.getY())){
                
    this.el.position();
                
    this.el.setY(y);
            }
        },
    在这里this.el.getY() 和this.trigger.getY()得到的值不一样。用FireBug或者IE8的工具查看HTML,以及在Vs的帮助下,了解到this.el代表的是Input输入框。this.trigger代表的是包含搜索图片和删除图片的一个SPAN。现在不知道是什么原因导致这两个元素的Y值不一样。
    我最后的解决方法是在Ext.app.SearchField的代码中override afterRender的定义:
        afterRender: function() {
            
    var y;
            
    if (Ext.isIE && !this.hideTrigger && this.el.getY() != (y = this.triggers[1].getY())) {
                
    this.el.position();
                
    this.el.setY(y);
            }
        }
    也就是在比较的时候将比较对象由外层的SPAN换成里面的具体的某个图片。
    虽然这样解决了问题,但是还是没有弄明白之前的方法为什么是错误的。
  • 相关阅读:
    nodejs
    socket.io
    how to develop mobile web
    nodejs
    GitHub
    angularJS vs backbone
    AngularJS
    oracle 数据库中数据导出到excel
    cocos2d-x中的二段构造模式
    HDOJ 4975 A simple Gaussian elimination problem.
  • 原文地址:https://www.cnblogs.com/Aricc/p/1421176.html
Copyright © 2011-2022 走看看