Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript wierd错误:每次单击都会多次执行代码_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript wierd错误:每次单击都会多次执行代码

Javascript wierd错误:每次单击都会多次执行代码,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个类似的评论系统 当我点击like链接时,有时效果很好,但有时每次点击最多发送8-9个请求!我在另一个使用keydown事件的jquery代码上也遇到了同样的问题 <a href="javascript:void(0);" class="like_comment" ><?php echo $likeLable; ?></a> $('.like_comment').live('click', function () { var pa

我有一个类似的评论系统

当我点击like链接时,有时效果很好,但有时每次点击最多发送8-9个请求!我在另一个使用keydown事件的jquery代码上也遇到了同样的问题

   <a href="javascript:void(0);" class="like_comment" ><?php echo $likeLable; ?></a>



 $('.like_comment').live('click', function () {
     var parent = $(this).parent();
     var comment_id = parent.parent().find('.comment_id').val();
     parent.fadeOut(200);

     $.post("<?php echo base_url(); ?>album/like", {
         comment_id: comment_id
     },
     function (data) {
         if ($.trim(data) == 'ok') {
             var like_span = parent.parent().find('.like_counter');
             var like = parseInt(like_span.text()) + 1;
             like_span.text(like);

             parent.html('<a href="javascript:void(0);" class="unlike_comment" ><?php echo $unlikeLable; ?></a>');
             parent.fadeIn(200);
             return false;
         } else {
             parent.fadeIn(200);
             alert(data);
         }
     })
 })

$('.like_comment').live('click',函数(){
var parent=$(this.parent();
var comment_id=parent.parent().find('.comment_id').val();
母公司淡出(200);
$.post(“相册/类似”{
注释id:注释id
},
功能(数据){
如果($.trim(数据)=‘正常’){
var like_span=parent.parent().find('.like_counter');
var like=parseInt(like_span.text())+1;
like_span.text(like);
html(“”);
家长:fadeIn(200);
返回false;
}否则{
家长:fadeIn(200);
警报(数据);
}
})
})

此代码有什么问题吗?

尝试从事件处理程序返回
true
,表示您已处理该事件。那样就没人会把它捡起来


如果这不起作用,那么您可能正在为同一事件注册多个事件侦听器。使用您喜爱的调试器暂停javascript执行,然后使用控制台检查相关dom元素上的所有事件侦听器。

尝试从事件处理程序返回
true
,表示您已处理该事件。那样就没人会把它捡起来


如果这不起作用,那么您可能正在为同一事件注册多个事件侦听器。使用您喜爱的调试器暂停javascript执行,然后使用控制台检查相关dom元素上的所有事件侦听器。

如果不查看其余代码和不知道单击应用于哪个元素,则很难知道,因此以下3种解决方案之一可以工作:

$('.like_comment').on('click',function(e) {
     //do something
     e.preventDefault();     // stops default button action, e.g. submitting a form
     e.stopPropagation();    // stops event bubbling back to parent element
   }  
   return false;         /// stops default link action
});

顺便说一句,live现在已被弃用,取而代之的是“on”。

如果不查看代码的其余部分,不知道单击应用于哪个元素,则很难知道,因此以下3种解决方案之一可以工作:

$('.like_comment').on('click',function(e) {
     //do something
     e.preventDefault();     // stops default button action, e.g. submitting a form
     e.stopPropagation();    // stops event bubbling back to parent element
   }  
   return false;         /// stops default link action
});
顺便说一句,live现在已被弃用,取而代之的是“on”