所以我对jQuery很新,但做某些项目试图变得更好。现在我遇到了这个问题,我无法理解,甜甜圈知道要搜索什么来获得帮助......
我已将变量“height”设置为原始的“data-sizey”。这可以正常工作,因为控制台输出正确的大小。我接下来要做的是在第二个函数中使用此变量,这里是gridster.resize_widget($(this).parent().parent(), 0, height);
问题是这不起作用(什么也不做),我无法理解为什么。这可能真的很愚蠢,如果你能向我解释我应该如何使用变量,我会非常感激!
//Resize widget on handler click
function handler1() {
var height = $(this).parent().parent().attr( "data-sizey" );
// console.log(height, "Height");
gridster.resize_widget($(this).parent().parent(), 0, 1);
$(this).toggleClass('arrow_rotate');
$(this).parent().parent().toggleClass('minimized');
$(this).one("click", handler2);
}
function handler2() {
gridster.resize_widget($(this).parent().parent(), 0, height);
$(this).toggleClass('arrow_rotate');
$(this).parent().parent().toggleClass('minimized');
$(this).one("click", handler1);
}
$(".minimize").one("click", handler1);
答案 0 :(得分:0)
问题是您的height
变量在handler2
函数范围内不可见,因为它是在handler1
内声明的,您可以将其作为参数传递给{{1}如下:
handler2
或者在 //Resize widget on handler click
function handler1() {
var height = $(this).parent().parent().attr( "data-sizey" );
// console.log(height, "Height");
gridster.resize_widget($(this).parent().parent(), 0, 1);
$(this).toggleClass('arrow_rotate');
$(this).parent().parent().toggleClass('minimized');
$(this).one("click", function(){
handler2(height);
});
}
function handler2(height) {
gridster.resize_widget($(this).parent().parent(), 0, height);
$(this).toggleClass('arrow_rotate');
$(this).parent().parent().toggleClass('minimized');
$(this).one("click", handler1);
}
$(".minimize").one("click", handler1);
范围之外定义height
变量:
handler1