0

ユーザーがキーワードを div に追加するアプリケーションがあります。彼らは、好きなだけキーワードを追加/削除することができます。最初のキーワードを追加すると、div は slideToggle を使用して div を開き、最初のキーワードを表示します。これらのキーワードは配列に追加されます。livequery プラグインを使用して、x グラフィックをクリックしたときにキーワード div を削除します。私が抱えている問題は、最後のキーワードが削除されたときです (配列の長さ 0 に基づいて)。div で再度 slideToggle を使用して div を閉じます。これは私の現在のコードでは機能しません。



    //Here's my jquery
    $(document).ready(function () {
        //number of keywords
        var numkw = 0;
        //keyword array
        var keywords = [];
        //ouput of array
        var output = "";
        //hide the div that holds the keywords
        $("div#KeywordHolder").hide();


        //When the Add keyword button clicked 
        $("#nihSearch_btnSearch").click(function () {
            //value of textbox
            var currentkeyword = $("#nihSearch_txtSearch").val();
            //if numkw is 0 slide open the keyword holder
            if (keywords.length == 0) {
                keywords.push(currentkeyword);
                //slide open keywordHolder
                $("div#KeywordHolder").slideToggle("slow", function () {
                    $("div#KeywordHolder").delay(2000, function () {
                        //add first tab to keys div and fade it in
                        $("div#keys").append("" + currentkeyword + " ");
                        var lastid = $("div#keys .tab:last").attr("id");
                        $("div#keys").fadeIn(1000);
                    });

                });



            }
            //otherwise add the tab and keyword to the array
            else {
                keywords.push(currentkeyword);
                $("div.tab:last").after("" + currentkeyword + " ", function () {
                    $(this).fadeIn(1000);
                });
                var lastid = $("div#keys .tab:last").attr("id");
            }

        });

        //When get resources button clicked show current array values
        $("#nihSearch_btnResults").click(function () {
            output = "";
            //as a test output all array values into a message box
            $.each(keywords, function (i, l) {
                output += l + " ";
            });

            alert(output);
        });


        //Tab x clicked
        $('#keys', 'body')
            .find('a.xclick')
                .livequery('click', function () {
                    //gets the id of the tab clicked on
                    var getid = $(this).parent().attr("id");
                    //gets the number of the tab from the id value
                    var numid = parseInt(getid.replace(/\D/g, ''), 10);
                    $(this).parent("div").remove();
                    keywords.splice((numid - 1), 1);
                    alert("Length: " + keywords.length);
                    if (keywords.length == 0) {
                        alert("In the if statement");                   
                        $("div#KeywordHolder").slideToggle("slow");
                    }
                    return false;
                });


    });

    //code for autocomplete textbox

    $(function () {
        var availableTags = [
                "ActionScript",
                "AppleScript",
                "Asp",
                "BASIC",
                "C",
                "C++",
                "Clojure",
                "COBOL",
                "ColdFusion",
                "Erlang",
                "Fortran",
                "Groovy",
                "Haskell",
                "Java",
                "JavaScript",
                "Lisp",
                "Perl",
                "PHP",
                "Python",
                "Ruby",
                "Scala",
                "Scheme"
            ];
        $(".homeSearchBox").autocomplete({
            source: availableTags
        });
    });

    // code for drop down

    (function ($) {
        $(function () {
            $('#combolist').combobox();

        });
    })(jQuery);

<!-- Here's my html -->

<div class="ui-widget">
                                <asp:TextBox ID="txtSearch" placeholder="Enter Keywords..." columns="25" CssClass="homeSearchBox" runat="server"></asp:TextBox>

                                 <asp:Button ID="btnSearch" CssClass="searchButton" runat="server" 
                                Text="Add Keyword" UseSubmitBehavior="False" />
                            </div>

                            <div id="KeywordHolder">
                                <div id="keys">
                                    <!-- <div class='tab'><span>test tab</span><a href='#' class='xclick' />Close</a></div> -->
                                </div>
                                <br class="clear" />  
                                <div class="rightdiv">
                                    <asp:Button ID="btnResults" CssClass="searchButton" runat="server" 
                                    Text="Find Resources" UseSubmitBehavior="False" />
                                </div>                         
                            </div>

4

0 に答える 0