what i decided to do is "unroll the loop", for example:

if you have this loop:

for(var i = 0; i <= 9; ++i) alert(i);

then you could "unroll" it to this:

alert(0);
alert(1);
alert(2);
...
alert(9);

since i only had a total of 9 iterations of the loop, then it would only add
a little bit to filesize
but even then I will end up packing the js file when all is fully functional
later, so that then becomes not really and issue either

thanks though,
mikfig

On Sat, May 16, 2009 at 9:22 PM, mkmanning <michaell...@gmail.com> wrote:

>
> You might want to doublecheck that when you click the elements you
> took out of the loop, you really get what you say. Given your example,
> if you click #page2 it should alert 'page3' also.
>
> You don't really need the loop to attach the click and get at the
> number if it's part of the id:
>
> $('div[id^=page]').click(function(){
>  console.log('page ' + this.id.replace(/page/,'') + ' clicked.');
> });
>
> Try Googling global variables, scope, and closures in JavaScript.
>
>
> On May 16, 2:16 pm, mikfig <mikfi...@gmail.com> wrote:
> > I have a webpage that searches a database using a php script to search
> > the database and a jQuery app on the page to retrieve the results and
> > show them. So it works fine, but then I want to add page number
> > buttons to allow the user to go to different "pages" of the results.
> > So I have a DIV with the id of "page_buttons" and I use the following
> > code:http://pastebin.com/m3dffbf99
> >
> > I use the offset and the results per page like this in a MySQL query
> > in the php script: SELECT .... LIMIT offset,
> > resultsPerPage by the way.
> >
> > So anyways, the problem I am having is that if I have a loop like
> > this:
> >
> > var pageNum = 6;
> > ...
> > for(var i = 0; i <= pageNum; ++i)
> > {
> >     $("#page" + i).click(function() { alert('page ' + i + '
> > clicked.'); });
> >
> > }
> >
> > The elements with IDs of "page1", "page2",... are buttons, and I
> > tested the above loop. What happens is if I click any of the buttons
> > with IDs of "page1", "page2",.. then they all "alert" with the string
> > "page 7 clicked". All the page buttons 1-6 display the string "page 7
> > clicked".
> >
> > To try to greater understand this problem I took the functionality out
> > of the loop like this:
> >
> > var i = 2;
> > $("#page" + i).click(function() { alert('page ' + i + '
> > clicked.'); });
> > i = 3;
> > $("#page" + i).click(function() { alert('page ' + i + '
> > clicked.'); });
> >
> > and it worked just fine with "page2" alerting "page 2 clicked and
> > "page3" alerting with "page 3 clicked".
> >
> > So I was hoping someone could help me in explaining why this issue
> > occurs and if there was a better way to do what I'm trying to do.
> >
> > Thanks,
> > mikfig
>



-- 
DX for life

Reply via email to