On Jan 30, 2008, at 3:10 PM, timothytoe wrote:
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?
If you can assign class="port" to each of those elements, you could do
this:
$('.port').each(function(index) {
$(this).click(function() {bigchart(index)});
}
if you can't assign a class, then change $('.port') to $
('[id^=port]') , as Josh suggested.
--Karl
_________________
Karl Swedberg
www.englishrules.com
www.learningjquery.com