如何用jquery让事件重复执行

如何用jquery让事件重复执行,第1张

参考下面代码

<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>

js: document.getElementById("txtPrice").addEventListener('click', function (){alert('添加事件成功!')},false)

jq:$('#txtPrice').bind('click', function() {

alert('click')

})

这样原来的事件的方法 会执行,现在的也会

最近做项目为一个添加按钮绑定点击事件,很简单的一个事情,于是我按照通常做法找到元素,使用jquery的on()方法为元素绑定了点击事件,点击同时发送请求。完成后看效果,第一次点击没有问题。再一次点击后发现发送了两次请求,后面再点击发现请求的数量越来越多。这时我初步判断可能是元素有多个或是多次调用了方法,但找了一遍,发现只为一个元素绑定了事件,且只调用了一次。后来通过查资料才知道是点击事件被累加绑定了!那到底什么是累加绑定呢?什么时候会发生累加绑定?累加绑定后该如何解决呢?下面我就通过这三个问题来说一下。

在页面中为一个元素绑定事件,事件执行后页面未刷新且元素还在,然后你再次点击,元素又被绑定个一次点击事件,这样第二次点击就会执行两次,以此类推。

如何解决累加绑定:第一种方法是元素点击后删除,然后再动态创建一个元素,再添加点击事件。显然这个方式很麻烦。

第二中方法是使用jquery的one()方法,为元素绑定一个一次性的事件处理函数,这个事件处理函数只会被执行一次。

第三种方法是在每次绑定点击事件前先解除之前的事件绑定,再为元素绑定事件,类似于先清空,在做 *** 作一样。但你使用bind()方法绑定时,可以用unbind()方法解除绑定。通常我们跟愿意用on()方法绑定事件,因为bind()方法已经不被推荐,那么那么就用off()方法解除事件绑定。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11728677.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存