解决jquery重复执行事件

2025-10-27 02:44:23

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢