jquery如何click事件时候 ,让某个函数暂停或终止?

假设我现在运行了一个function:
$("p").demo();

我点击按钮A的时候,希望这个demo()的函数不起作用或者终止,然后点击按钮B,demo()又开始运行,或者起作用。
求好心人指点~~~~麻烦用下面的格式告诉我怎么做或者给个思路 感谢~~~
$("p").demo();
buttonA.click(function() {

});
buttonB.click(function() {

});
最新回答
山间雾安

2025-03-30 07:21:05

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。clearTimeout。


setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。


现在又多了一个requestanimationframe可用


以setTimeout为例,

var i=0,timer;
function add(){
i++;
console.log(i);
timer=setTimeout('add()',1000);
}
buttonA.onclick=function(){
clearTimeout(timer);
}
buttonB.onclick=add;


又或者题主想要这样的

var i=0,bool=true;
function add(){
if(bool){
i++;
console.log(i);
}else{
return false;
}
}
buttonA.onclick=function(){
bool=false;
}
buttonB.onclick=function(){
bool=true;
}
杯别

2025-03-30 02:17:24

// 设置一个允许标记
var allowDemoRun = true;
var oldDemo = $.prototype.demo;
// 重写jQuery类的demo方法
$.prototype.demo = function(){
    // 假如标记为false就不允许执行
    if(!allowDemoRun) return;
    // 调用jQuery类原来的demo方法
    oldDemo&&oldDemo.apply(this,arguments);
}
$("p").demo();
buttonA.click(function() {
    
        allowDemoRun = false;
    
});
buttonB.click(function() {
     allowDemoRun = true;
});
我是女神哦买噶

2025-03-30 13:28:46

停止是不可能的,只能解绑click
热带的企鹅

2025-03-30 05:51:34

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。clearTimeout。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

现在又多了一个requestanimationframe可用

以setTimeout为例,

1
2
3
4
5
6
7
8
9
10

var i=0,timer;
function add(){
i++;
console.log(i);
timer=setTimeout('add()',1000);
}
buttonA.onclick=function(){
clearTimeout(timer);
}
buttonB.onclick=add;

又或者题主想要这样的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

var i=0,bool=true;
function add(){
if(bool){
i++;
console.log(i);
}else{
return false;
}
}
buttonA.onclick=function(){
bool=false;
}
buttonB.onclick=function(){
bool=true;
}