扩展JQuery - 仅IE错误 - 对象不支持此属性或方法

时间:2010-10-22 22:14:24

标签: jquery internet-explorer

IE只有bug ...去图......

当我这样做时,我得到Object不支持这个属性或方法...

$('#the-content').showAsModal({
     'leftPosition': 100,
     'topPosition': 200,
     'centerX': true
});

我像这样扩展了jQuery ......

(function ($) {
    $.fn.showAsModal = function (options) {
        var settings = $.extend({
            'leftPosition': 0,
            'topPosition': 0,
            'transition': 'none',
            'transitionSpeed': 500,
            'zIndex': 9001,
            'centerX': false,
            'centerY': false
        }, options || {});

        return this.each(function () {
            var self = $(this)
            if (settings.centerY) settings.y = Math.floor((($(document).height() - self.height()) / 2);
            if (settings.centerX) settings.x = Math.floor(($(document).width() - self.width()) / 2);

            self.css({ 'position': 'absolute', 'top': settings.y + "px", 'left': settings.x + "px", 'z-index': settings.zIndex });

            if (self.parent('.modal-container').length <= 0)
                self.wrap("<div style=\"display:none;\" class=\"modal-container\"></div>");
            if (self.siblings('.modal-mask').length <= 0)
                self.parent().append("<div style=\"width:" + $(document).width() + "px;height:" + $(document).height() + "px;\" class=\"modal-mask\"></div>");
            self.parent().show().end();
        });
    };

    $.say = function () {

    };
})(jQuery);

我导入JQuery然后只在其中导入一个包含上述代码段的文件。

这在firefox中很有用。

让我们开始一项阻止我们使用IE的网站的人的倡议。如果我们都这样做......

1 个答案:

答案 0 :(得分:1)

您的代码中存在语法错误,因此您的代码无法在任何浏览器中运行。

if (settings.centerY) settings.y = Math.floor((($(document).height() - self.height()) / 2);

Math.floor之后的3个括号中的一个太多