0
아래 코드가 있습니다. 당신이 볼 수 있듯이 jqueryautocomplete의 alert 함수에서 변수 클라이언트를 사용하려고합니다.jquery 자동 완성의 result() 함수에서 전역 변수의 값을 얻으려고 시도합니다.
문제 : 자동 완성 드롭 다운 메뉴에서 항목을 선택하면 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
});
});
감사
하비
감사하지만 "익명의 기능"은 무엇입니까? ready() 함수에서 변수를 꺼내면 문제는 동일합니다. – ziiweb
익명 함수는 함수 이름이없는 함수입니다 (예 : function() {...} ) 코드의 예제 구현을 어딘가에서 제공 할 수 있습니까? 우리는 그것을 테스트 할 수 있습니까? 나는 고객이 그 시점에서 정의되지 않은 것을 반환하는 이유를 놓치고있다. – JaredMcAteer
좋아, 이제 작동한다. 나는 방금 "var clients = clients + 1;"줄을 가지고있다. 두 번째 "경고 (클라이언트)"바로 아래에 있습니다. 그냥 "var"을 제거하면 작동합니다. 저에게 놀라운 것은 Chrome 관리자가 오류를 표시하지 않는다는 것입니다 ... – ziiweb