代码之家  ›  专栏  ›  技术社区  ›  Peter

jquery-jquery行4618上的IE错误

  •  0
  • Peter  · 技术社区  · 14 年前

    我知道,这是一个非常普遍的错误。 但我的问题是我的脚本超过了1500行。

    我能做什么?…或者…你打算怎么办?

    事先谢谢!
    彼得

    编辑:

    jQuery.extend({
        style: function( elem, name, value ) {
            // don't set styles on text and comment nodes
            if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
                return undefined;
            }
    
            // ignore negative width and height values #1599
            if ( (name === "width" || name === "height") && parseFloat(value) < 0 ) {
                value = undefined;
            }
    
            var style = elem.style || elem, set = value !== undefined;
    
            // IE uses filters for opacity
            if ( !jQuery.support.opacity && name === "opacity" ) {
                if ( set ) {
                    // IE has trouble with opacity if it does not have layout
                    // Force it by setting the zoom level
                    style.zoom = 1;
    
                    // Set the alpha filter to set the opacity
                    var opacity = parseInt( value, 10 ) + "" === "NaN" ? "" : "alpha(opacity=" + value * 100 + ")";
                    var filter = style.filter || jQuery.curCSS( elem, "filter" ) || "";
                    style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) : opacity;
                }
    
                return style.filter && style.filter.indexOf("opacity=") >= 0 ?
                    (parseFloat( ropacity.exec(style.filter)[1] ) / 100) + "":
                    "";
            }
    
            // Make sure we're using the right name for getting the float value
            if ( rfloat.test( name ) ) {
                name = styleFloat;
            }
    
            name = name.replace(rdashAlpha, fcamelCase);
    
            if ( set ) {
                style[ name ] = value; // <<------------------ invalid argument
            }
    
            return style[ name ];
        },
    

    当我启动页面时,我得到这个错误“无效参数”。

    1 回复  |  直到 14 年前
        1
  •  4
  •   scunliffe    14 年前

    试试这段代码和你的行:

    //yours
    if ( set ) {
      style[ name ] = value; // <<------------------ invalid argument
    }
    
    // swap it out with this...
    if ( set ) {
      try{
        style[ name ] = value;
      } catch(ex){
        alert('Caught Exception attempting to set: [' + name + '] to [' + value + ']');
      }
    }
    

    我只能猜测你想用的名字是不允许的。如果是这种情况,将其包装在try/catch中将显示哪个属性。(之后,您可以忽略错误(如果确实不相关)或优雅地设置其他方法。