我有递归函数如下:
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();
})
我的功能在加载页面上执行,但我不希望这样。 我只想点击按钮而不是加载页面。 我能怎么做 ? 请..
答案 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>