Autosuggest jquery ajax过早消失

时间:2014-09-24 11:27:57

标签: jquery performance delay autosuggest

你好我有一个jquery autosuggest,它很快就会消失:

 http://www.mirochgroup.com/MirocheGroup/

我已经指示它在用户输入最少3个单词

后开始搜索

当我尝试从输入传递鼠标时,结果显示fadeout很多次 文字到结果,

他们过早地淡出了

    $(function(){
    $(".search").keyup(function() 
    { 
    var searchid = $(this).val();
    var dataString = 'search='+ searchid;
    if(searchid!='')
    {
        $.ajax({
        type: "POST",
        url: "searchx",
        data: dataString,
        cache: false,
        success: function(html)
        {
        $("#result").html(html).show('2000');
        }
        });
    }return false;    
    });

    jQuery("#result").live("click",function(e){ 
        var $clicked = $(e.target);
        var $name = $clicked.find('.name').html();
        var decoded = $("<div/>").html($name).text();
        $('#searchid').val(decoded);
    });
    jQuery(document).live("click", function(e) 
    { 
        var $clicked = $(e.target);
        if (! $clicked.hasClass("search"))
        {
            setTimeout(function()
            {
                jQuery("#result").delay('1500').fadeOut('2800');
            },7000);
        }
        });
        $('#searchid').click(function(){
            //jQuery("#result").fadeIn("1000");
             jQuery("#result").delay('500').fadeIn('1300');
        });

    });

这是表格:

    <form>
            <input type="text"  id="searchid" name="sear"  autocomplete="off"/>
            <div id="result" style = 'z-index:5000;position:relative;'></div>
    </form> 

我做错了什么,

非常感谢

1 个答案:

答案 0 :(得分:1)

这很棘手。编码fwslider.js的方式,它会触发“#fwslider .slideNext”的点击。然后,您的jQuery(document).live(...处理程序将处理此单击事件。在您的文档单击处理程序中,我将检查事件目标,如果目标是幻灯片显示下一个按钮,则不运行。

jQuery(document).live("click", function(e) 
    { 
        var $clicked = $(e.target);
        if (!$clicked.hasClass("search") && !$clicked.hasClass(".slideNext")){...

我通过查看Firebug中的调用堆栈找到了这个。