execute a function only once

后端 未结 3 972
南旧
南旧 2020-12-22 04:14

I have a function which executes on click event, but the thing is that I want it to execute only once.

The function that get\'s executed on click represents a googl

相关标签:
3条回答
  • 2020-12-22 04:57

    you could bind click only once like:

    $(document).one('click', function(e) {
        //do your code here
    });
    

    OR

    $('#someBtn').click(function(){    
        if ($(this).attr('data-once')!='already_clicked' ){
            //your code here
            $(this).attr('data-once', 'already_clicked');
        }
    });
    
    0 讨论(0)
  • 2020-12-22 05:19

    Use jQuery's .one().

    http://api.jquery.com/one/

    As per OP's explanation: there's always the possibility to define more than one click event for an element.

    So you can define one with .one() and the other with on() as you already do, putting the code to run only once in the first.

    0 讨论(0)
  • 2020-12-22 05:19

    Two choices:

    1. Use two event handlers: one defined with one, the other with on
    2. Use a counter in the closure.

    Something like:

    var counter = 0;
    return $(element).on('click', function() {
        counter++;
        if ( counter > 1 ) {
        }
    });
    
    0 讨论(0)
提交回复
热议问题