Javascript jQuery在.live上崩溃(“keyup”)

Javascript jQuery在.live上崩溃(“keyup”),javascript,jquery,keyup,Javascript,Jquery,Keyup,我这里有一些代码: $(document).ready(function() { $("#querybox").live("keyup", function(e) { var code = (e.keyCode ? e.keyCode : e.which); if (code == 13) { $("#querybox").blur(); } else { search(document.getElementById('querybo

我这里有一些代码:

$(document).ready(function() {
$("#querybox").live("keyup", function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 13) {
       $("#querybox").blur();
    }
    else {
        search(document.getElementById('querybox').value);
    }

    /*if (document.getElementById('querybox').value == "") {
        $("center").removeHighlight();  
    }*/
});
});
它检测到一个keyUp并用它来搜索某物。问题是:当#querybox退格到空的位置时,整个页面崩溃,我从Google Chrome收到“Awwww,Snap!”消息

我正在使用jqueryv1.7.2

一百万泰铢

编辑

我还应该指出,search()函数突出显示正文中的文本(注意注释部分)。我正在使用插件


搜索Fn:

function search(query) {
    $("center").removeHighlight();
    $(".paragraph").highlight(query);
    $(".highlight").each(function (index) {
        $(this).attr("id", "tmpforgoToByClassScrollhighlight" + index);
    });
}
你应该改用

尝试改用:


更新后: 您可能希望更好地了解如何执行搜索功能

缓存一些jQuery元素,这样就不会在每个keyup上反复选择它们


另外,我并没有浏览所有的
。突出显示的
代码,但可能有一个bug,不允许使用空字符串,这就是网站导致浏览器崩溃的原因。

什么是
搜索()
?你从Chrome开发者工具中发现了什么?对我来说很好:@Walendas——我们可以看看你的
search(…)
?“search()”是我做的一个函数,它基本上突出显示查询的文本:“function search(query){$(($).removeHighlight();$(“.paration”).highlight(query);$(.highlight”)。每个(函数(index){$(this.attr(“id”,“tmpforgoToByClassScrollhighlight”+index);});}'@Walendas ahhh把它放在你的问题中!@Walendas,关于空字符串上突出显示失败的猜测可能是完全正确的:试着运行
$('.段落')。突出显示(''''))
。我打赌它会使页面崩溃。@apsillers Walendas现在不在,请在哔哔声后留言。我们有赢家了!结果(我一点也不奇怪)我使用的插件是垃圾…我找到了另一个插件,它仍然需要一些调整,但会不会启动并运行…:)@瓦伦达斯看到我的更新。我刚意识到我的一句台词错了。也解决了这个问题^_^
$(document).ready(function() {
//It will be a good advice to replace body with a parent element of #querybox
$("body").delegate("#querybox","keyup", function(e) {
 var code = (e.keyCode ? e.keyCode : e.which);
  if (code == 13) {
    $("#querybox").blur();
  }
  else {
    search(document.getElementById('querybox').value);
  }

  /*if (document.getElementById('querybox').value == "") {
    $("center").removeHighlight();  
   }*/
 });
});
$("#querybox").on("keyup", function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    var queryBox = this;
    if (code === 13) {   // PRESSED ENTER
       queryBox.blur();
    }
    else {
        search(queryBox.val());
    }
});