jquery mouseup确保只触发一次
jquery mouseup ensure firing only once
我对如何确保鼠标只启动一次感到困惑。
function cropPet(){
$("#canvas").on("mouseup", function(){
console.log("hello world");
});
}
例如,当我点击一个按钮3次时,cropPet
函数被触发,每次我在#canvas上点击mouseup
时,我的控制台中都会出现3次hello world。我曾尝试在on()
之前附加off()
,但它不起作用,我的控制台中根本没有hello world
(不启动?)。这是我的脚本,附带off()
。
function cropPet(){
$("#canvas").off("mouseup").on("mouseup", function(){
console.log("hello world");
});
}
您可以使用.one()
来确保事件只触发一次:
$("#canvas").one("mouseup", function(){
console.log("hello world");
});
形成jQuery文档:
将处理程序附加到元素的事件。每个元素每个事件类型最多执行一次处理程序。
试试这样的东西:
function cropPet(){
$("#canvas").on("mouseup", function(){
console.log("hello world");
$("#canvas").off("mouseup");
});
}
看看这把小提琴。
脚本中存在概念错误。函数cropPet()
在执行时定义了$("#canvas")
上的单击侦听器。因此,当您执行该函数3次时,3次单击侦听器,因此每次单击该元素时都会执行3次警报消息。
现在,您想要的是直接将点击侦听器分配给元素:
function cropPet(){
console.log("hello world");
}
$("#canvas").on("mouseup", function(){
cropPet();
});
是否希望事件在应用程序的生命周期内只触发一次?在这种情况下,你可能想做这样的事情:
//Function to remove the event
function removeMouseEvent(item) {
$(item).off();
}
//Attach The Event
$("#canvas").on("mouseup", function () {
console.log("hello world");
removeMouseEvent(this);
});
这是一把小提琴,展示了代码的作用:http://jsfiddle.net/amspianist/Dc6tb/1/
尝试停止事件传播,使函数只触发一次
$("#canvas").on("mouseup", function(e){
e.stopPropagation();
console.log("hello world");
});
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Angularjs:空对象,当只有一次点击时
- 在Angular应用程序中每个帖子投票一次
- 主干模型更改事件只触发一次
- JavaScript mouseup事件被触发多次在一次点击
- jquery mouseup确保只触发一次
- Raphael .mouseup()函数只触发一次