.one() method executes handler only once.

Syntax

.one(eventType[, eventData], handler)

Parameters

eventType
A string containing a JavaScript event type such as click or submit
eventData (optional)
A map of data that will be passed to the event handler
handler
A function to execute at the time the event is triggered

Return value

The jQuery object, for chaining purposes.

Description

Attach a handler to an event for the elements. The handler is executed at most once.

This method is identical to .bind(), except that the handler is unbound after its first invocation.

For example:


$('#foo').one('click', function() {
 alert('This will be displayed only once.');
});

This code is equivalent to the following:


$('#foo').bind('click', function(event) {
 alert('This will be displayed only once.');

 $(this).unbind(event);

});
 
<html> 
    <head>
        <style type="text/css">
        .div1 { 
            width : 100; 
            height : 100; 
            background-color: blue;
         }
         .div2 { 
            width : 100; 
            height : 100; 
            background-color: red;
         } 
        </style> 
        <script src="http://java2s.com/Book/JavaScriptDemo/jQuery/jquery-1.8.0.min.js"></script> 
        <script> 
            $(function(){
       
                $(".div1").one("click", function(){ 
                    $("body").append("<p>clicked div 1 </p>"); 
                });
                $(".div2").bind("click", function(){ 
                    $("body").append("<p>clicked div 2 </p>"); 
                }); 
            });
        </script> 
    </head> 
    <body>
        <div class="div1"></div> 
        <div class="div2"></div> 
    </body> 
</html>
  
Click to view the demo

Event executes once

 
<html>
  <head>
    <script src="http://java2s.com/Book/JavaScriptDemo/jQuery/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
             $("h1").one("mouseenter mouseleave", function(e){
                 var str = "( " + e.pageX + ", " + e.pageY + " )";
                 $("h1").text(str);
             });
        });
    </script>
  </head>
  <body>
    <body>
       <div><h1>header 1</h1></div>
    </body>
</html>
  
Click to view the demo

one(type, data, fn): executed only once for each element

 
<html>
  <head>
    <script src="http://java2s.com/Book/JavaScriptDemo/jQuery/jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
                $("div").one("click", function(){
                  alert("clicked.");
                });
        });
    </script>
<style>
  div { width:50px; height:70px; float:left; margin:5px;
        background:rgb(255,140,0); cursor:pointer; }
</style>
  </head>
  <body>
    <body>
          <div>asdf</div>
    </body>
</html>
  
Click to view the demo
Home 
  JavaScript Book 
    jQuery  

Event:
  1. jQuery Event
  2. jQuery's methods for event
  3. Event object
  4. event.keycode
  5. event.clientX/clientY
  6. event.pageX/pageY: click event coordinates
  7. event.preventDefault()
  8. event.stopPropagation(): Stop only an event from bubbling by using the stopPropagation method.
  9. event.target.tagName
  10. event.which:check key code
  11. return false to Cancel a default action and prevent it from bubbling up
  12. bind
  13. .blur()
  14. .change()
  15. .click()
  16. .error()
  17. .dblclick()
  18. .delegate()
  19. die:Removes a bound live event
  20. .focus()
  21. .hover()
  22. keydown() event
  23. .keypress()
  24. keyup event and check the key code
  25. .live()
  26. .load()
  27. mousedown() event
  28. mouseenter() event
  29. mouseleave
  30. mousemove()
  31. mouseover() event
  32. mouseout
  33. mouseup() event
  34. .off() removes events
  35. .on() replaces the functionality of all the event methods.
  36. .one() method executes handler only once.
  37. .ready()
  38. .resize()
  39. .scroll()
  40. .select()
  41. .submit()
  42. .toggle()
  43. .trigger()
  44. .triggerHandler()
  45. .unbind() accepts a string describing the event type to unbind.
  46. .undelegate() removes the binding
  47. .unload()
  48. use bind/trigger to create custom event