0

jsFiddle:http: //jsfiddle.net/bg9vL/

控制台输出:

未捕获的类型错误:对象 [对象全局] 没有方法“每个”

 var methods = {

    init: function (options) {

        // Create some defaults, extending them with any options that were provided
        var settings = $.extend({
            'maxWidth': 0,
            'maxHeight': 0,
            'forceAspect': true
        }, options);

        return this.each(function () {

            // if max size wasn't specified, position only
            var nosize = settings.maxWidth === 0 || settings.maxHeight === 0;
            var container = $(this).parent();

            $(this).css('position', 'relative');

            // fit when window is resized
            $(window).bind('resize.tailorfit', methods.fit);

            // fit when page has loaded
            $(window).bind('load.tailorfit', methods.fit);

            // fit on initial load
            methods.fit.apply();
        });

    }, ...
4

2 回答 2

1
methods.fit.apply();

使用全局对象作为 this调用fit,它没有方法each

现在,您可以通过$(this)在 function 中执行技术来解决此问题fit,但我不确定这是您想要做的。

另请注意,您的 jsFiddle 不会执行给定的回调$('.image-container > img').load

于 2013-04-14T13:35:05.013 回答
1

我敢打赌,你需要用 jQuery 标记来包装它。

...
$(this).each(
...

它不将其识别为 jQuery 对象,因此每个函数都对它不可用。

之后您确实有一个容器问题,您应该能够轻松解决。

于 2013-04-14T13:27:56.310 回答