The only thing you need to do is to capture the number on a scope. Like this:
function bind( num ){ $('#port'+num).click(function(){ bigchart(num); }); }; for( var i=0; i<5; i++ ) bind( i ); And voila, you can also do: function getHandler( num ){ return function(){ bigchart(num); }); }; for( var i=0; i<5; i++ ) $('#port'+i).click( getHandler(i) ); Hope that helps Cheers Ariel Flesler On 30 ene, 23:28, Feijó <[EMAIL PROTECTED]> wrote: > I'm yet to be an expert in jQuery :) But I would solve that like this: > > $(".port").click(function() {bigchart($(this).attr('port-id') )}); > > now in your html code, I guess its like: > > <div id=port1> > > change to > > <div class=port port-id=1> > > Feijó > > timothytoe escreveu: > > > > > I think I submitted a half-done version of this message by accident a > > few minutes ago. Sorry. > > > This works: > > $("#port0").click(function() {bigchart(0)}); > > $("#port1").click(function() {bigchart(1)}); > > $("#port2").click(function() {bigchart(2)}); > > $("#port3").click(function() {bigchart(3)}); > > $("#port4").click(function() {bigchart(4)}); > > > I try to roll it up like this: > > for (i=0;i<5;i++) { > > $("#port"+i).click(function() {bigchart(i)}); > > } > > > But the closure gets me. When the function is called, i is 5 for any > > of the buttons. > > What is the elegant solution here?- Ocultar texto de la cita - > > - Mostrar texto de la cita -