Попытка получить значение глобальной переменной внутри функции result () автозаполнения jquery - PullRequest
0 голосов
/ 15 марта 2011

У меня есть этот код ниже.Как вы можете видеть, я пытаюсь использовать переменные клиенты в функции оповещения jqueryautocomplete.

Проблема: когда я выбираю элемент из выпадающего меню автозаполнения, он выводит «неопределенное» вместо значениявар.Почему?

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

  });

});

С уважением

Хави

1 Ответ

1 голос
/ 15 марта 2011

Это не глобальная переменная, это переменная, определенная в области действия анонимной функции, запускаемой, когда документ готов.

Я полагаю, что область действия может быть потеряна при запуске анонимной функции, переданной в метод результатов методаавтозаполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...