jQuery live issue - undefined不是函数

时间:2014-09-01 16:52:00

标签: javascript jquery

我有一个使用ajax的实时搜索,我得到一个Uncaught Typeerror: undefined is not a function.的控制台日志错误错误指向我的代码的第一行。我以前用过这个,现在还不知道有什么想法吗?

$("input#search-staff").live("keyup", function() {
        // Set Search String
        var staffname = $(this).val();

        // Do Search
        if(staffname !== ''){
            $.ajax({
                type: "GET",
                url: "_ajax/_tasks/search-staff.php",
                data: { query: staffname },
                cache: false,
                success: function(html){
                    $("ul#staff-list").html(html);
                }
            });
        }return false;
    });

2 个答案:

答案 0 :(得分:0)

jQuery.live()在1.7版中已弃用,已从jQuery 1.9中删除。 使用jQuery.on() insted。

答案 1 :(得分:0)

以下是 的功能:

$(document).on("keyup", "input#search-staff", function(e) {
    var staffname = $(this).val();

    e.preventDefault();

    if (!staffname) return;

    $.get("_ajax/_tasks/search-staff.php", {query: staffname})
    .done(function (html) {
        $("ul#staff-list").html(html);
    });
});

注释

  • .live()切换到.on()事件委派
  • 早期返回 - 不太深入的嵌套代码
  • 使用jqXhr延迟事件处理程序(.ajax())从.get()切换到.done()

P.S。:尽量不要在客户端执行cache: false之类的操作。只需在响应头(Cache-Control: no-cache, no-store)中设置相应的HTTP缓存指令,并将客户端保留为默认值。