Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 26th, 2012  |  syntax: None  |  size: 1.25 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Need help understanding jquery delegate() function
  2. $(".some_element_class").delegate("a", "click", function(){
  3.  
  4.     alert($(this).html());
  5.  
  6. });
  7.        
  8. $(elements).delegate(selector, events, data, handler);  // jQuery 1.4.3+
  9. $(elements).on(events, selector, data, handler);        // jQuery 1.7+
  10.  
  11. $(".some_element_class").on("a", "click", function(){
  12.  
  13.     alert($(this).html());
  14.  
  15. });
  16.        
  17. <div class="some_element_class">  <!-- delegate handler is here -->
  18.  
  19.     <div>won't trigger your handler</div>
  20.     <a>will trigger your handler</a>
  21.     <a><span>will trigger</span> your handler</a>
  22.  
  23. </div>
  24.        
  25. <div class="some_element_class">  <!-- delegate handler is here -->
  26.  
  27.     <div>won't trigger your handler</div>
  28.     <a>will trigger your handler</a>
  29.     <a><span>will trigger</span> your handler</a>
  30.  
  31.       <!-- this element newly added... -->
  32.     <a><span>...will also trigger</span> your handler</a>
  33.  
  34. </div>
  35.        
  36. //Static event handlers for static links
  37. $("a").bind("",linkHandler);
  38.  
  39. //Live event handlers for dynamic parts of the document
  40. $(".dynamic").delegate("a", "mouseover", linkHandler);
  41.        
  42. $(".some_element_class").bind("click", function (e) {
  43.     var matches = $(e.target).closest("a", this);
  44.     if (matches.length) {
  45.         yourcallback.call(matches[0], e);
  46.     }
  47. });