jQuery实时问题-未定义不是函数

jQuery live issue - undefined not a function

本文关键字:函数 未定义 实时 问题 jQuery      更新时间:2023-09-26

我用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;
    });

以下是函数的外观:

$(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延迟事件处理程序(.done())从.ajax()切换到.get()

附言:尽量不要在客户端做cache: false之类的事情。只需在响应标头(Cache-Control: no-cache, no-store)中设置适当的HTTP缓存指令,并将客户端保留为默认值。

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