Показать сообщение отдельно
  #3 (permalink)  
Старый 23.08.2013, 18:41
Кандидат Javascript-наук
Отправить личное сообщение для FanAizu Посмотреть профиль Найти все сообщения от FanAizu
 
Регистрация: 08.03.2011
Сообщений: 148

Сообщение от danik.js Посмотреть сообщение
Тут используется небольшая хитрость. Функции назначается GUID идентификатор, и прокси-функции тоже. Таким образом устанавливается соответствие между прокси и функцией. А при удалении обработчика проверяется этот GUID.

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
var obj = {test: function() { alert('test') }};
var proxy = jQuery.proxy( obj, "test" );
alert([proxy.guid, obj.test.guid]);
</script>
То есть, если я правильно понял, то при передаче ф-ции, например, под названием test в ф-цию proxy, этой ф-цие test, jQuery присваивает идентификатор, этому идентификатору поставлена в соответсвие ссылка на ф-цию test. Вызывая же метод on('click', название ф-ции), jQuery проверяет наличие идентификатора у ф-ции и, затем находит ф-цию, поставленную в соответствие этому идентификатору и затем удаляет эту ф-цию из обработки события. Верно?

Последний раз редактировалось FanAizu, 23.08.2013 в 18:45.
Ответить с цитированием