我真的在这里挣扎。我正在使用漂亮的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对象,这不是我想要的。
答案 0 :(得分:3)
插件不返回任何内容,声明一个局部变量,该变量将通过闭包在回调中分配。
var width = "";
$(this).evenIfHidden(function(e){
width = e.width();
});
答案 1 :(得分: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;
})
);