I have the following events for a Backbone View. Its a product view - with three tabs ("All", "Top 3", "Top 5")
Can I somehow pass a parameter into the method declaration so that it is equivalent to the following (this doesn't work)?
events : { "click #top-all": "topProducts(1)" "click #top-three": "topProducts(2)" "click #top-ten": "topProducts(3)" }, topProducts(obj){ // Do stuff based on obj value }
You could put the extra argument in a data attribute on the clickable item instead; something like this:
<a id="top-all" data-pancakes="1">
And then topProducts
can figure it out itself:
topProducts: function(ev) { var pancakes = $(ev.currentTarget).data('pancakes'); // And continue on as though we were called as topProducts(pancakes) // ... }
I generally prefer to do something like this:
events : { "click #top-all": function(){this.topProducts(1);} "click #top-three": function(){this.topProducts(2);} "click #top-ten": function(){this.topProducts(3);} }, topProducts(obj){ // Do stuff based on obj value }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With