繁体   English   中英

preventDefault不适用于ajax请求

[英]preventDefault doesn't work on ajax request

我的preventDefault事件无法正常工作,但无法理解原因。 我在四处搜寻,但不知道问题出在哪里。 如果我的案件在某处有答复,请原谅! 这是我的代码:

var $vote_btn_up = $('.vote_comment_up_' + <?= $model->id ?>);
var $vote_btn_down = $('.vote_comment_down_' + <?= $model->id ?>);

$vote_btn_up.on('click', function (evt) {
    evt.preventDefault();
    var $commentId = 0;
    var $postId = 0;
    if($vote_btn_up.data('comment_id') != 0){
        var $commentId = $vote_btn_up.data('comment_id');
    }
    if($vote_btn_up.data('post_id') != 0){
        var $postId = $vote_btn_up.data('post_id');
    }
    var $flag = $vote_btn_up.data('flag');
    var $userId = $vote_btn_up.data('user_id');
    $.ajax({
        method : 'post',
        url : '/admin/site/like-dislike',
        data : {flag : $flag, comment_id : $commentId, user_id : $userId, post_id : $postId},
        success : function( data ){
            console.log(data);
            if($flag == 1){
                $('.thumb-up_<?= $model->id ?>').text( data );
            }else if($flag == 2){
                $('.thumb-down_<?= $model->id ?>').text( data );
            }
        }
    });
});

您要防止什么行为? evt.preventDefault()如果您有一个表单并且该按钮是一个提交按钮,并且您希望阻止提交表单,则可以使用。 但是这些是我的许多假设...

 var $vote_btn_up = $('.vote_comment_up'); $vote_btn_up.on('click', function (evt) { evt.preventDefault(); console.log("log"); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="http://google.de"> <button type="submit" class="vote_comment_up"> Button </button> </form> 

我认为您创建了多个按钮:

var $vote_btn_up = $('.vote_comment_up_' + <?= $model->id ?>);

如果是的话,那么下一个优先考虑...所以尝试将它们放在例如数组中,然后需要为每个按钮设置处理程序,例如:

for(var i=0;i<=X;i++){
  $vote_btn_up[i].on('click',function(){

  });
});

要么:

$('.vote_comment_up_' + <?= $model->id ?>).each(function(){
  $(this).on('click',function(){

  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM