james_027 wrote:
hi,

I have a small jQuery script, that get some data over the server on
every keypress by the user, but I don't to perform such action every
time when the user presses a key, specially if between key presses
happens in short amount of time. How do I delay this event?

Here is my script

$('[EMAIL PROTECTED]').keyup(function(e){
                                if (e.target.value != ''){
                                        $.get('/main/search_item/',
                                                {search_item:e.target.value},
                                                function(data){
                                                        $('[EMAIL 
PROTECTED]').html(data);
                                                }
                                        );
                                }
                        });

thanks
james



var delayed;
$('[EMAIL PROTECTED]').keyup(function() {
    clearTimeout(delayed);
    var value = this.value;
    if (value) {
        delayed = setTimeout(function() {
$.get('/main/search_item/', { search_item: value }, function(data) {
                $('#search_item_result]').html(data);
            });
        }, 400);
    }
});


I've optimized a few things as well, like using the faster #id selector and using "this" instead of e.target...

--Klaus

Reply via email to