解决jquery重复执行事件

 时间:2024-10-12 23:42:42

1、这是一段重复执行的代码,每当你点一次,就会自动增加一次事件的调用。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript"> function tips(){ $('#yy').click(function(){ say($('#txt').val()); }); } function say(msg){ var str = '这是我想说的提示:'+msg; alert(str); tips() } $(document).ready(function(){ tips(); });</script></head><body><input type="text" id="txt" value="" /><input type="button" id="yy" value="yyy" /></body></html>

2、事实上这不是我们想要的执行结果对吧,我们只需要点击一次就运行一次就完事,针对于此,jquery 有一个unbind 的函数能够帮助我们实现。

3、把代码改为如此,就能成功成你所愿了。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript"> function tips(){ $('#yy').unbind('click').bind('click',function(){ say($('#txt').val()); }); } function say(msg){ var str = '这是我想说的提示:'+msg; alert(str); tips() } $(document).ready(function(){ tips(); });</script></head><body><input type="text" id="txt" value="" /><input type="button" id="yy" value="yyy" /></body></html>

4、这虽然很简单,但是这个例子很容让人疏忽,如果是弹框是容易发现是重复的,如果是获取数据呢?这不是增大很多服务器的压力吗?

  • Notepad++ 怎么快速替换复杂的内容
  • NI Vision Assistant-Image Mask图像屏蔽
  • 易语言 取字节集图片宽度高度 不用api 非模块
  • 北方NP-07(黑色)叶片式恒温电暖炉使用手册
  • css图片对齐方式
  • 热门搜索
    山西平遥古城旅游攻略 红色旅游线路 丹江口旅游 适合春节旅游的地方 烟台 旅游 传奇旅游 旅游高峰期 酷讯旅游 云南旅游新闻 云南河口旅游