Thanks Corey,

I've now got my code down to what follows.

If I swap qty_field for input_text in the function bound to the image
button's click event, obviously, any click increments all input
values. Is there any way cutting this code down further?

Thanks,

Dan.

$(document).ready(function() {

        addPlusMinus("[EMAIL PROTECTED]@type=text]");
        addPlusMinus("[EMAIL PROTECTED]@type=text]");
        $("table.summarytable tr:even").addClass("odd");
        
});

function addPlusMinus(input_text){      
        $(input_text).after("<img src='images/buttons/button_minus.gif'
alt='-' class=\"decrement\" /><img
src='images/buttons/button_plus.gif' alt='+' class=\"increment\" />");
                $(input_text).siblings("img.decrement").bind("click", 
function() {
                        qty_field = $(this).siblings("[EMAIL PROTECTED]");
                        var numValue = $(qty_field).val();
                        if (numValue > 0 ) {
                        numValue--;
                        }
                        $(qty_field).val(numValue);
                });
                $(input_text).siblings("img.increment").bind("click", 
function() {
                        qty_field = $(this).siblings("[EMAIL PROTECTED]");
                        var numValue = $(qty_field).val();
                        numValue++;
                        $(qty_field).val(numValue);
                });
        
}



On 8/21/07, seedy <[EMAIL PROTECTED]> wrote:
>
>
> You shouldn't need to use the .each
>
> $('td [EMAIL PROTECTED]@type=text]').after('stuff') will append to all
> elements that match the selector, no need to go into a loop with each.
>
>
> Dan Eastwell wrote:
> >
> >
> > Hi,
> >
> > I'm doing an order form for a bookstore. The order form has over 500
> > items in it, so jquery runs slowly.
> >
> > There is no way I can change the number of items, it's a given and a
> > piece of business 'logic'.
> >
> > The jquery I have comprises four simple functions to add
> > increment/decrement buttons to the order form to increase quantities,
> > and a jquery addClass call to add pajama/zebra stripes to the table.
> > There are two quantity fields (again for business reasons), so that's
> > over a 1000 items.
> >
> > http://test2.danieleastwell.co.uk/test2/master_order_test.html
> >
> > The problem is it causes a 'script hanging' error IE7 on, I'm
> > guessing, slower machines (not mine), and takes ~10secs in Firefox2
> > (with firebug/validation tools) to load.
> >
> > Is there any way I can optimize this to load any more quickly, or do I
> > need to give up on scripting to add the items and their functionality?
> >
> > Many thanks,
> >
> > Dan.
> >
> > $(document).ready(function() {
> >
> >       addPlusMinus("td [EMAIL PROTECTED]@type=text]");
> >       addPlusMinus("td [EMAIL PROTECTED]@type=text]");
> >       increment("#order_form img.increment");
> >       decrement("#order_form img.decrement");
> >       $("table.summarytable tr:even").addClass("odd");
> >
> > });
> >
> > function addPlusMinus(input_text){
> >       $(input_text).each( function(){
> >               $(this).after(" images/buttons/button_minus.gif
> > images/buttons/button_plus.gif ");
> >       });
> > }
> >
> > function increment(image_button) {
> >       $(image_button).bind("click", function() {
> >               qty_field = $(this).parent("td").find("[EMAIL PROTECTED]");
> >               var numValue = $(qty_field).val();
> >               numValue++;
> >               $(qty_field).val(numValue);
> >       });
> > }
> > function decrement(image_button) {
> >       $(image_button).bind("click", function() {
> >               qty_field = $(this).parent("td").find("[EMAIL PROTECTED]");
> >               var numValue = $(qty_field).val();
> >               if (numValue > 0 ) {
> >               numValue--;
> >               }
> >               $(qty_field).val(numValue);
> >       });
> > }
> >
> >
> >
> >
> >
> > --
> > Daniel Eastwell
> >
> > Portfolio and articles:
> > http://www.thoughtballoon.co.uk
> >
> > Blog:
> > http://www.thoughtballoon.co.uk/blog
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/Iterating-over-1000-items---optimizing-jquery-tf4306183s15494.html#a12258350
> Sent from the JQuery mailing list archive at Nabble.com.
>
>


-- 
Daniel Eastwell

Portfolio and articles:
http://www.thoughtballoon.co.uk

Blog:
http://www.thoughtballoon.co.uk/blog

Reply via email to