为什么我收到jQuery错误“类型错误:$(..).在以下场景中,Live 不是一个函数

Why I'm getting the jQuery error "TypeError: $(...).live is not a function " in following scenario?

本文关键字:错误 Live 一个 函数 jQuery 类型 为什么 类型错误      更新时间:2023-09-26

>实际上,我正在尝试对一个文本字段实现自动完成功能,但出现上述错误,无法理解为什么会出现此错误。你能帮我解决这个错误吗?供您参考,我在下面提供了所有必要的代码:

报告-学生-结果.tpl

<link rel="stylesheet" type="text/css" href="{$control_css_url}ui-lightness/jquery-ui-1.10.3.custom.css">  
<link rel="stylesheet" type="text/css" href="{$control_css_url}autocomplete.css">
<label>Name</label>
            <div class="form-element" id="friends">
              <input type="text" class="" name="user_name" id="user_name" value="{$user_name}" />
            </div>
<script language="javascript" type="text/javascript">
$(function(){  
  var class_id = $('#class_id').val();
  var section_id = $('#section_id').val();
        //attach autocomplete  
        $("#user_name").autocomplete({  
            //define callback to format results  
            source: function(req, add){  
                //pass request to server  
                $.getJSON("report_student_result.php?callback=?op=get_student_names&class_id="+class_id+"&section_id="+section_id, req, function(data) {  
                    //create array for response objects  
                    var suggestions = [];  
                    //process response  
                    $.each(data, function(i, val){                                
                    suggestions.push(val.name);  
                });  
                //pass array to callback  
                add(suggestions);  
            });  
        },  
        //define select handler  
        select: function(e, ui) {  
            //create formatted friend  
            var friend = ui.item.value,  
                span = $("<span>").text(friend),  
                a = $("<a>").addClass("remove").attr({  
                    href: "javascript:",  
                    title: "Remove " + friend  
                }).text("x").appendTo(span);  
                //add friend to friend div  
                span.insertBefore("#user_name");  
            },  
            //define select handler  
            change: function() {  
                //prevent 'to' field being updated and correct position  
                $("#user_name").val("").css("top", 2);  
            }  
        }); 
        //add click handler to friends div  
        $("#friends").click(function(){  
            //focus 'to' field  
            $("#user_name").focus();  
        });  
        //add live handler for clicks on remove links  
        $(".remove", document.getElementById("friends")).live("click", function(){  
            //remove current friend  
            $(this).parent().remove();  
            //correct 'to' field position  
            if($("#friends span").length === 0) {  
                $("#user_name").css("top", 0);  
            }                 
        });                      
    });
</script>

请帮助我解决此错误。提前谢谢。

live() 自 1.9 版以来已被删除,自 1.7 版起已弃用:

你会想要on()现在的日子

$('#friends').on("click", ".remove", document.getElementById("friends"), function(){  

其中 #friends 在 DOM 上可用 就绪。不能在动态加载的元素上绑定on()

您可以使用

.on()而不是.live()(在Jquery 1.7之后已弃用(

$(document).on('event', 'selector', function() {});替换.live() .

例如:

$( document ).on( "click", "#elementId ", function(){  alert( "Do here what you want!" );  // jQuery1.7+    });

Live(( 自 1.9 以来已从 jquery 中删除。 请使用on