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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何click事件时候 ,让某个函数暂停或终止?相关的知识,希望对你有一定的参考价值。

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

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

);
buttonB.click(function()

);

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;

参考技术A // 设置一个允许标记
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;
);

参考技术B 停止是不可能的,只能解绑click 参考技术C 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;

jQuery 事件方法

jQuery 事件方法

事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。

触发实例:

$("button#demo").click()

上面的例子将触发 id="demo" 的 button 元素的 click 事件。

绑定实例:

$("button#demo").click(function(){$("img").hide()})

上面的例子会在点击 id="demo" 的按钮时隐藏所有图像。

方法描述
bind()向匹配元素附加一个或更多事件处理器
blur()触发、或将函数绑定到指定元素的 blur 事件
change()触发、或将函数绑定到指定元素的 change 事件
click()触发、或将函数绑定到指定元素的 click 事件
dblclick()触发、或将函数绑定到指定元素的 double click 事件
delegate()向匹配元素的当前或未来的子元素附加一个或多个事件处理器
die()移除所有通过 live() 函数添加的事件处理程序。
error()触发、或将函数绑定到指定元素的 error 事件
event.isDefaultPrevented()返回 event 对象上是否调用了 event.preventDefault()。
event.pageX相对于文档左边缘的鼠标位置。
event.pageY相对于文档上边缘的鼠标位置。
event.preventDefault()阻止事件的默认动作。
event.result包含由被指定事件触发的事件处理器返回的最后一个值。
event.target触发该事件的 DOM 元素。
event.timeStamp该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。
event.type描述事件的类型。
event.which指示按了哪个键或按钮。
focus()触发、或将函数绑定到指定元素的 focus 事件
keydown()触发、或将函数绑定到指定元素的 key down 事件
keypress()触发、或将函数绑定到指定元素的 key press 事件
keyup()触发、或将函数绑定到指定元素的 key up 事件
live()为当前或未来的匹配元素添加一个或多个事件处理器
load()触发、或将函数绑定到指定元素的 load 事件
mousedown()触发、或将函数绑定到指定元素的 mouse down 事件
mouseenter()触发、或将函数绑定到指定元素的 mouse enter 事件
mouseleave()触发、或将函数绑定到指定元素的 mouse leave 事件
mousemove()触发、或将函数绑定到指定元素的 mouse move 事件
mouseout()触发、或将函数绑定到指定元素的 mouse out 事件
mouseover()触发、或将函数绑定到指定元素的 mouse over 事件
mouseup()触发、或将函数绑定到指定元素的 mouse up 事件
one()向匹配元素添加事件处理器。每个元素只能触发一次该处理器。
ready()文档就绪事件(当 HTML 文档就绪可用时)
resize()触发、或将函数绑定到指定元素的 resize 事件
scroll()触发、或将函数绑定到指定元素的 scroll 事件
select()触发、或将函数绑定到指定元素的 select 事件
submit()触发、或将函数绑定到指定元素的 submit 事件
toggle()绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。
trigger()所有匹配元素的指定事件
triggerHandler()第一个被匹配元素的指定事件
unbind()从匹配元素移除一个被添加的事件处理器
undelegate()从匹配元素移除一个被添加的事件处理器,现在或将来
unload()触发、或将函数绑定到指定元素的 unload 事件


本文出自 “月童” 博客,请务必保留此出处http://littlefive.blog.51cto.com/6440205/1917676

以上是关于jquery如何click事件时候 ,让某个函数暂停或终止?的主要内容,如果未能解决你的问题,请参考以下文章

用jquery,实现让快速双击只调用一次对象的click事件。

如何让jquery在页面加载的时候自动调用某个函数

Jquery中click事件重复执行的问题

jQuery 事件方法

jquery的click事件对象试解

jQuery 参考手册 - 事件