0

我真的在这里挣扎。我正在使用漂亮的 evenIfHidden 插件,它在期望回调的 jQuery 函数中运行良好,该回调正确返回宽度或高度值。但是如果我只想分配那个值,我会得到一个 jQuery 对象,真的很烦人。

这完美地工作:

$(this).text($(this).evenIfHidden(function(e) {
                                      return e.width();
                                  })
);

这不会:

var width = $(this).evenIfHidden(function(e) {
                                      return e.width();
                                 });

而不是分配 e.width() 给width它分配 jQuery 对象,这不是我想要的。

4

2 回答 2

3

该插件不返回任何内容,声明一个局部变量,该变量将通过闭包在回调中分配。

var width = "";
$(this).evenIfHidden(function(e){
    width = e.width();
});
于 2013-02-25T09:58:11.337 回答
2

这是不可能的。如果evenIfHidden函数没有返回值,那么您无能为力。相反,您应该在回调中使用此值,因为这是该值可用的唯一位置。你不应该试图把它流到外面。因此,例如,如果您想使用此宽度执行某些操作,而不是尝试将其作为返回值传递给evenIfHidden函数,您可以在回调中使用它:

$(this).text(
    $(this).evenIfHidden(function(e) {
        var width = e.width();
        // do something with the width here, for example you could pass it to some other function
        someFunction(width);
        return width;
    })
);
于 2013-02-25T09:58:25.577 回答