是否在页面上执行功能?

时间:2016-04-16 19:19:34

标签: javascript jquery angularjs

我有递归函数如下:

scope.$watch('settings.egg', function () {
                    var index = 0;
                    function inOrder() {
                        setTimeout(function () {
                            $(".egg").eq(index).removeClass("maximize")
                            $(".egg").eq(index + 1).addClass("maximize")
                            index++;
                            inOrder();
                        }, 3000)
                    };
                    $(".egg").eq(index).addClass("maximize")
                    inOrder();
                })

我的功能在加载页面上执行,但我不希望这样。 我只想点击按钮而不是加载页面。 我能怎么做 ? 请..

1 个答案:

答案 0 :(得分:0)

为什么不设置一个绑定按钮的按键功能,然后在其中设置你的功能?例如:

scope.buttonClick = function() {
  scope.watchFunc = scope.$watch('settings.egg', function () {
                    var index = 0;
                    function inOrder() {
                        setTimeout(function () {
                            $(".egg").eq(index).removeClass("maximize")
                            $(".egg").eq(index + 1).addClass("maximize")
                            index++;
                            inOrder();
                        }, 3000)
                    };
                    $(".egg").eq(index).addClass("maximize")
                    inOrder();
                })
}

您可以将其存储在范围变量中,以便稍后可以从其他功能轻松调用它来取消$ watch。在您的标记中:

<button ng-click="buttonClick()">Click me to set the watch</button>