单击按钮一次(js)

M.S*_*dim 6 jquery click onclick

我查看了stackoverflow和其他网站,但找不到我要找的答案.

我有一个按钮,我希望用户只能点击一次.这是我的javascript/jquery触发click事件.但是我怎么能强迫它只能点击一次呢?

 $(document).ready(function () {
     //var $new_total = $('#gtotal').val();

     $('#a_is_valid').click(function () {
         if ($('#code_promo').val() == 'theCode') {
             $('#gtotal').val($('#gtotal').val() - ($('#gtotal').val() - (($('#gtotal').val() * .75))));
         }
     })
 })
Run Code Online (Sandbox Code Playgroud)

j08*_*691 7

使用jQuery的.one()功能.

$('#a_is_valid').one('click', function(){
    if ($('#code_promo').val() == 'theCode')
    {$('#gtotal').val($('#gtotal').val()-($('#gtotal').val()-(($('#gtotal').val()*.75))));
}
Run Code Online (Sandbox Code Playgroud)


PSL*_*PSL 6

您可以使用jquery .one() 这将确保click事件只发生一次.

Demo

$('#a_is_valid').one('click', function(){

        if ($('#code_promo').val() == 'theCode')
        {
          var gtot = $('#gtotal').val();
          $('#gtotal').val(gtot -(gtot -(gtot *.75)));
        }
 });
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用on()off()

$('#a_is_valid').on('click', handleClick);

function handleClick() {
    var gtot = $('#gtotal').val();
    $(this).off('click');
    if ($('#code_promo').val() == 'theCode') {
        $('#gtotal').val( gtot - (gtot-(gtot * 0.75)) );
    }
} 
Run Code Online (Sandbox Code Playgroud)

  • 是`this`是一个jQuery对象? (2认同)