为什么我的jQuery代码每隔一次只提交一个Ajax请求?

为什么我的jQuery代码每隔一次只提交一个Ajax请求?,jquery,xml,ajax,Jquery,Xml,Ajax,我尽了最大努力让这一切变得有意义,但基本上我有一个文本输入,当用户键入一些内容并按下enter键时,jQuery搜索XML文档以找到匹配项,并输出其内容。当你第一次尝试它时,它工作得非常完美,但奇怪的是,它只在每隔一次时才正常工作。因此,在第一次尝试时,它将输出正确的文本,在第二次尝试时,它将表现为即使应该也没有找到匹配项,而在第三次尝试时,它将再次工作。这种模式重复。我不知道从哪里开始解决这个问题,所以有人有什么想法吗?这是我的密码: $("#helpopen input").bind('ke

我尽了最大努力让这一切变得有意义,但基本上我有一个文本输入,当用户键入一些内容并按下enter键时,jQuery搜索XML文档以找到匹配项,并输出其内容。当你第一次尝试它时,它工作得非常完美,但奇怪的是,它只在每隔一次时才正常工作。因此,在第一次尝试时,它将输出正确的文本,在第二次尝试时,它将表现为即使应该也没有找到匹配项,而在第三次尝试时,它将再次工作。这种模式重复。我不知道从哪里开始解决这个问题,所以有人有什么想法吗?这是我的密码:

$("#helpopen input").bind('keypress', function(e) {
if (e.keyCode==13) {
    var typed = $("#helpopen input").val();
    $("#openresult").slideUp(function() { $(this).remove(); });
    $("#aniloa").show().animate({ opacity: 1 });

    $.get('/wp-content/themes/kymt/style/js/filetypes.xml', function(d) {
        $(d).find('ext').each(function() {

            var $ext = $(this);
            var curext = $ext.attr("type");
            var curtext = $ext.text();

            if (typed == curext) {
                $("#helpopen div div").append("<p id='openresult' style='display:none'><strong>A ."+typed+" file...</strong><br />"+curtext+"</p>");
                $("#openresult").slideDown();
                return false;
            }

        });
    });

    $("#aniloa").animate({ opacity: 0 }, function() { $(this).hide(); })
}
});

aniloa是一个简单的gif,表示加载,openresult是一个p元素,包含XML文档中输出的文本,helpopen div是openresult的父元素。

结果表明它得到了正确的结果,但它会被display:none卡住。我刚刚删除了幻灯片动画,效果很好。

要保留幻灯片动画,请使用:

$("#openresult").slideUp();
而不是:

$("#openresult").slideUp(function() { $(this).remove(); });

有没有可能用此代码发布到该页面的链接?@David这是链接:。只需单击顶部的按钮,上面写着如何打开……还有一件事,对于XML,您可以键入我迄今为止添加的任何文件类型,尝试doc、png或jpg。