我在下面有这个代码。正如您所看到的,我正在尝试在jqueryautocomplete的alert函数中使用变量客户端。
问题:当我从自动完成下拉菜单中选择一个项目时,它会打印“未定义”而不是var的值。为什么呢?
jQuery(document).ready(function() {
var clients = 0;
alert(clients); //this prints 0.
jQuery("#user_autocomplete")
.autocomplete('autocompleteUser', jQuery.extend({}, {
dataType: 'json',
parse: function(data) {
var parsed = [];
for (key in data) {
parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] };
}
return parsed;
}
} ))
.result(function(event, data) {
$('#field_users').append('<div class="user_choosen" id=' + data[1] + '>' + data[0] +'<a class="link_delete_user" href="#" onclick="javascript:deleteUser(' + data[1] +')">Delete</a></div>');
$('#user_autocomplete').val('');
alert(clients); //this prints undefined
});
});
此致
哈维
答案 0 :(得分:1)
这不是一个全局变量,这是在文档准备就绪时运行的匿名函数范围内定义的变量。
我相信当运行传递给自动完成的结果方法的匿名函数时,范围可能会丢失。