代码之家  ›  专栏  ›  技术社区  ›  aendra

隐藏搜索字段代码只执行一次

  •  1
  • aendra  · 技术社区  · 15 年前

    我写了一段jquery,当用户将鼠标悬停在搜索按钮上时,它会显示一个搜索框,显示5秒钟,如果用户没有将搜索文本字段聚焦,它就会消失。

    它现在只是出现,消失,然后重新出现。我的代码如下,您可以在 http://emilysenger.ca

    jQuery(document).ready(function(){
    
        jQuery('input').blur(function(){
                    jQuery('input').removeClass("focus");
            })
                 .focus(function() {                
                     jQuery(this).addClass("focus")
            });
    
        jQuery("div#sneakySearch form input#search").css("display", "none");
        jQuery("div#sneakySearch form input#searchButton").hover(function(){
            jQuery("div#sneakySearch form input#search").fadeIn("slow");
        }, function(e){
        jQuery(e).delay(5000, 
                function(e){
                    if(!jQuery("div#sneakySearch form input#search").hasClass("focus"))
                        {
                            jQuery("div#sneakySearch form input#search").fadeOut("slow");
                        }
    
        });
        });
    
    });
    

    这方面的一些帮助是 令人惊叹的 . 谢谢!

    1 回复  |  直到 15 年前
        1
  •  3
  •   cambraca    15 年前

    here

    <div id="sneakySearch">
        <form method="get" action="/">
            <input type="text" name="s" id="search">
            <input type="submit" value="Search" id="searchButton">
        </form>
    </div>
    

    function fadeOutSearch() {
        var element = jQuery("div#sneakySearch form input#search");
        if (!element.hasClass("focus") && element.val() == "") {
            element.fadeOut("slow");
        }
    }
    
    jQuery(document).ready(function() {
        jQuery('input').blur(function() {
            jQuery('input').removeClass("focus");
            setTimeout(fadeOutSearch, 1000);
        }).focus(function() {
            jQuery(this).addClass("focus")
        });
    
        jQuery("div#sneakySearch form input#search").hide();
        jQuery("div#sneakySearch form input#searchButton").hover(function() {
            jQuery("div#sneakySearch form input#search").fadeIn("slow");
        }, function(e) {
            setTimeout(fadeOutSearch, 1000);
        });
    });