数值参数中的jQuery变量

时间:2015-07-06 23:14:28

标签: jquery variables parameters numerical gridster

所以我对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);

1 个答案:

答案 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