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事件时候 ,让某个函数暂停或终止?的主要内容,如果未能解决你的问题,请参考以下文章