I think a good way is to put the data into a separate JSON object and
give them a unique ID (eg. item01, item02...), and assign that ID
somewhere on the links to be clicked.

var productList = {
  'item01':{name:123-ABC, color:'red', price:9.99},
  'item02':{name:123-ABC, color:'blue', price:10.99},
  'item03':{name:456-DEF, color:'green', price:29.99}
}

$(".buy").click(function() {
     var id = $(this).attr("id");
     var product = productList[id];
     alert(product.name + ' ' + product.color + ' ' + product.price);
});


<img src="item01.jpg /><a href="." id="item01" class="buy">Buy Me!</
a><br />
<img src="item02.jpg /><a href="." id="item02" class="buy">Buy Me!</
a><br />
<img src="item03.jpg /><a href="." id="item03" class="buy">Buy Me!</
a><br />



On Feb 13, 10:35 am, Eric P <eric.maill...@gmail.com> wrote:
> Hi,
>
> I'm fairly new to jQuery (been using a few months now).  Binding event 
> handlers to HTML objects via jQuery is awesome,
> but I find myself struggling to find a solid (I.e., best practice) method for 
> getting numerous arguments to the event
> handler that are pertinent to the object that triggered the event.
>
> For example, old method:
> <script>
> function buy(item, color, price) { ... }
> </script>
> ...
> <img src="item01.jpg /><a href="javascript:buy('123-ABC','red',9.99)>Buy 
> Me!</a><br />
> <img src="item02.jpg /><a href="javascript:buy('123-ABC','blue',10.99)>Buy 
> Me!</a><br />
> <img src="item03.jpg /><a href="javascript:buy('456-DEF','green',29.99)>Buy 
> Me!</a><br />
>
> jQuery method:
> <script>
> $(function() {
>      $('.buy').click(function() { ... }
> )};
> </script>
> ...
> <img src="item01.jpg /><a class="buy">Buy Me!</a><br />
> <img src="item02.jpg /><a class="buy">Buy Me!</a><br />
> <img src="item03.jpg /><a class="buy">Buy Me!</a><br />
>
> So in the jQuery method, what is the best way to make the multiple arguments 
> (that were previously in the inline HTML/JS
> function call) available to the event handling function?
>
> I've been limping along using various methods to get arguments to the event 
> handling function (E.g., like sticking
> values in an object's id field, etc.), but I'm at a loss when it comes to a 
> solid way to "pass" numerous arguments to
> the event handling function.
>
> Thanks for reading,
> Eric P.

Reply via email to