簡體   English   中英

jQuery unbind事件使函數工作一次,但事件重復

[英]the jquery unbind events makes the function work once but event is repeated

這是我的主頁,我有一個單選按鈕,單擊該按鈕時將通過ajax傳遞值,並由ajax檢查結果,並為每個問題正確/不正確顯示相應的輸出。 問題是一旦我單擊單選按鈕答案並顯示結果,我的取消綁定事件就可以正常工作,當我再次單擊時卻什么也沒發生,但是問題是沒有刪除單擊事件,我可以一次又一次單擊以認為該功能正常運行很好,只有一次。

那么如何使它一旦單擊就無法單擊,這是問題所在

<!doctype html>
<head>
<link href="<?php echo base_url('css/style.css');?>" type="text/css" rel="stylesheet"/>
<script src="<?php echo base_url('javascript/jquery.js');?>" rel="javascript" type="text/javascript"></script>
</head>
<body>  
<div id="wrapper">

<div id="main-content">

<?php foreach($result as $rows):?> 
<form>  
 <div class="question-box"> 
 <?php  echo '<h1 class="Qbanner">Q.</h1>'.'<h2>'.$rows->question.'</h2></br>';?>
                        <input  type="radio" name="<?php echo $rows->question_id;?>" value="a"><?php echo $rows->option1;?>
                        <input  type="radio" name="<?php echo $rows->question_id;?>" value="b"><?php echo $rows->option2;?>
                        <input  type="radio" name="<?php echo $rows->question_id;?>" value="c"><?php echo $rows->option3;?>
                        <input  type="radio" name="<?php echo $rows->question_id;?>" value="d"><?php echo $rows->option4;?>

                         <h5 class="result"></h5> 
                       </div>
                     </form>


                 <?php endforeach;?>
            </div>               
    </div>      
<!-- wrapper div ends -->

    <script>
    $(document).ready(function(){
    var clickedval,qid; 
    $("input:radio").bind('click',function(e){

    clickedval=$(this).val();
    qid=$(this).attr('name');
    var siteurl='<?php echo site_url();?>' + '/site/checkAnswer';

    $this=$(this).parent("div.question-box");
        $allradio=$(this).parent("div.question-box").children();

    $.ajax({
    url:siteurl,
    dataType:'json',
    type:'post',                                                   data:{'answer':clickedval,'questionid':qid},
success:function(data){ 

$this.find('.result').html(data.resultstatus);

$allradio.unbind('click');  
    }   

});
}); 
});

</script>

</body>
</html>

您可以通過在$ click事件函數中添加$(this).prop('disabled',true)來禁用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM