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

时间:2011-05-09 01:42:35

标签: jquery xml ajax

我正在尽力使这有意义,但基本上我有一个文本输入,当用户输入内容并按下回车键时,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”是包含XML文档中输出文本的ap元素,“#helpp div div”是“#openult”的父元素。 / p>

2 个答案:

答案 0 :(得分:0)

事实证明它得到了正确的结果,但它会被显示:无。我刚删除了滑动动画,效果很好。

答案 1 :(得分:0)

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

$("#openresult").slideUp();

而不是:

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