backbone.js - events, knowing what was clicked

44,882

Solution 1

Normally on an event bind, you would just use $(this), but I'm fairly sure Backbone views are set up so that this always refer to the view, so try this:

perpage: function(ev) {
   alert($(ev.target).text());
}

REALLY LATE EDIT: You probably want to use $(ev.currentTarget). See dicussion on pawlik's answer below

Solution 2

ev.target can be misleading, you should use ev.currentTarget as described on http://www.quirksmode.org/js/events_order.html

Share:
44,882
Matthew
Author by

Matthew

Updated on November 21, 2020

Comments

  • Matthew
    Matthew over 3 years

    In one of my backbone.js view classes, I have something like:

    ...
    
    events: {
      'click ul#perpage span' : 'perpage'
    },
    
    perpage: function() {
      // Access the text of the span that was clicked here
      // Something like: alert($(element).text())
    },
    
    ...
    

    because my per page markup might have something like:

    <ul id="perpage">
      <li><span>5</span></li>
      <li><span>10</span></li>
    </ul>
    

    So how exactly can I find information about the element that caused the event? Or in this instance, that was clicked?