How to prevent events from being bound multiple times

后端 未结 5 1363
后悔当初
后悔当初 2021-01-01 15:10
 $(\'.ajax\').click
 (        
    function()
    {
        // If been bound then we need to return here.
        alert(\':D\');
    }
 )

 $(\'.ajax\').click
 (
            


        
5条回答
  •  说谎
    说谎 (楼主)
    2021-01-01 15:47

    If using jQuery >= 1.7 you can use .on()/.off() API in conjunction with an event namespace. In this example .off() is called immediately to ensure previous events (of any kind) with the namespace are un-bound:

    $("form")
        .off(".validator")
        .on("keypress.validator", "input[type='text']", validate);
    

    It's quite a flexible API so you can be very specific if you need to be:

    $("form")
        .off("keypress.validator", "input[type='text']", validate)
        .on("keypress.validator", "input[type='text']", validate);
    

    The docs: http://api.jquery.com/off/

提交回复
热议问题