实际上我正在尝试将自动完成功能实现到一个文本字段但是出现上述错误,无法理解为什么我收到此错误。你能帮我解决这个错误吗?供您参考我将在下面提供所有必要的代码:
报告-学生result.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+"§ion_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>
请帮我解决此错误。提前谢谢。
答案 0 :(得分:27)
live()
已被删除,自1.7以来已被弃用:
你现在想要on()
天
$('#friends').on("click", ".remove", document.getElementById("friends"), function(){
其中#friends
可用于DOM准备就绪。您无法在动态加载的元素上绑定on()
。
答案 1 :(得分:6)
您可以使用.on()
代替.live()
(在Jquery 1.7之后弃用)
$(document).on('event', 'selector', function() {});
取代.live()
。
例如:
$( document ).on( "click", "#elementId ", function(){ alert( "Do here what you want!" ); // jQuery1.7+ });
答案 2 :(得分:1)
Live()已从jquery中删除了1.9。请使用on