[jQuery] Help needed

[jQuery] Help needed

Hey guys,
I have a problem in Safari with the following code and JQuery 1.6.
I have an <ul> list where each element contains a <form> which I show/
hide when the user clicks on the respective list item. I also have
prev/next buttons which make an AJAX call and inject the HTML with
the new list items. Upon updating the list, I also update the event
handlers for the new DOM nodes so they have the same desired behavior.
This works in FF and Opera but after updating the list (and the event
handlers) in Safari, show/hide doesn't work anymore. The are no JS
errors or warnings of any sort. I traced the problem as deep as I
could and found the following:
1) Event handlers are called
2) Within the event handler, $("#" + id + " form") returns an object,
but the subsequent .toggle("slow") doesn't do anything
Here is a link to a development machine: http://trec.dachev.com/?
q=trecmillion/queries
Please don't let the numerous references to the word "query" confuse
you; This application is serving an Information Retrieval experiment.
Your help is greatly appreciated. Thanks,
Blago
        function getQueryPage(e) {
            e.preventDefault();
            
            $.getJSON(this.href, function(json) {
                // Process the list of queries
                var newQueriesHTML = json.msg.data.html;
                // Hide PREV/NEXT links
                $(".getNext").css({display: "none"});
                $(".getPrev").css({display: "none"});
                
                // Show the new list of queries
                $("#queryList").html(newQueriesHTML);
                // Show/Hide criteria forms when user clicked on a query
                $("li[@class*=queryItem]").click(toggleCriteriaForm);
                
                // Delete box description when user clicked on the textarea
                $("form[@class*=queryCriteria] textarea").click(toggleTextarea);
                
                // Restore textarea description if empty
                $("form[@class*=queryCriteria] textarea").blur(toggleTextarea);
                
                // Prevent form from collapsing, submit it instead
                $("form[@class*=queryCriteria] input[@type=submit]").click
(submitCriteriaForm);
                
                // Update and show PREV/NEXT links
                var nURL = $(".getNext").attr("href");
                var pURL = $(".getPrev").attr("href");
                $(".getPrev").attr("href", pURL.replace(/[0-9]+$/,
json.msg.data.prev));
                $(".getNext").attr("href", nURL.replace(/[0-9]+$/,
json.msg.data.next));
                
                if(json.msg.data.next != 0)
                    $(".getNext").css({display: "inline"});
                if(json.msg.data.prev != 0)
                    $(".getPrev").css({display: "inline"});
            });
        }
        function toggleCriteriaForm(e) {
            e.preventDefault();
            var id = this.getAttribute("id");
            $("#" + id + " form").toggle("slow");
        }
        
        function toggleTextarea(e) {
            if(this.value == "")
                this.value = "Please describe how are you going to judge the
documents for this query...";
            else if(this.value == "Please describe how are you going to judge
the documents for this query...")
                this.value = "";
        
            return false;
        }
        function submitCriteriaForm(e) {
            e.preventDefault();
            var criteria = this.form.getElementsByTagName("textarea")[0].value;
            if(criteria.match("Please describe how are you going to judge the
documents for this query...")) {
                alert("You need to describe you query judging criteria.");
                return false;
            }
            
            this.form.submit();
            return false;
        }
        $(document).ready(function() {
            // Create a loader status box
            $("div#container").children().lt(1).before(\'<div id="loading"
style="position: absolute; top: 12px; right: 0; padding: 0 10px 0
10px; display: none; background-color: #f00; color:
#fff;">Loading...</div>\');
            
            $("#loading").ajaxStart(function(){
                $(this).show();
            });
            $("#loading").ajaxStop(function(){
                $(this).hide();
            });
            // Hide criteria forms after the page is loaded
            $("form.queryCriteria").hide();
            
            // Show/Hide criteria forms when user clicks on a query
            $("li[@class*=queryItem]").click(toggleCriteriaForm);
            
            // Delete box description when user clicks on the textarea
            $("form[@class*=queryCriteria] textarea").click(toggleTextarea);
            
            // Restore textarea description if empty
            $("form[@class*=queryCriteria] textarea").blur(toggleTextarea);
            
            // Prevent form from collapsing, submit it instead
            $("form[@class*=queryCriteria] input[@type=submit]").click
(submitCriteriaForm);
            // Hijack PREV/NEXT navigation
            $("a[@class*=getNext]").click(getQueryPage);
            $("a[@class*=getPrev]").click(getQueryPage);
        });
_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/