如何使一个事件处理程序在JQuery中只为具有多个项的选择器触发一次?

如何使一个事件处理程序在JQuery中只为具有多个项的选择器触发一次?,jquery,Jquery,我有以下JQUERY代码 <script type="text/javascript"> $(".voteup").click(function(){ alert($(this).parents(".webresource").attr("id")); }); </script> $(“.voteup”)。单击(函数(){ 警报($(this).parents(“.webresource”).attr(“id”); }); 页面有4个

我有以下JQUERY代码

<script type="text/javascript">
    $(".voteup").click(function(){
        alert($(this).parents(".webresource").attr("id"));
    });
</script>

$(“.voteup”)。单击(函数(){
警报($(this).parents(“.webresource”).attr(“id”);
});
页面有4个元素,类名为voteup。但当我点击其中一个按钮时,警报会显示四次。我认为只有一次单击,因此事件处理程序函数只能执行一次

如何确保事件处理程序函数只执行一次。

绑定事件处理程序,并在第一次执行时解除绑定

$('.upvote').one('click', function() {
   ...
});
另外,我要确保它不会像Ender在您的评论中所建议的那样被多次绑定。

绑定事件处理程序,然后在第一次执行时解除绑定

$('.upvote').one('click', function() {
   ...
});

另外,我要确保它不会像安德在你的评论中建议的那样被多次绑定。

这个脚本是动态创建的吗?当我把它做成一把小提琴时,我看不出这个问题。同上,我的小提琴很好。你在你的页面中包括了那个脚本4次吗?另外,您应该将其包装在文档就绪处理程序中,以确保DOM在执行时可以被操作。该脚本是动态创建的吗?当我把它做成一把小提琴时,我看不出这个问题。同上,我的小提琴很好。你在你的页面中包括了那个脚本4次吗?另外,您应该将其包装在一个文档就绪处理程序中,以确保DOM在执行时准备好进行操作。感谢您提供的这一优秀技巧,这将使我的工作更加轻松!谢谢你的建议,这会让我的工作轻松很多!