Как это должно работать, насколько я могу судить, проверяет, пуст ли пул (0) списка или состоит из singleton (1) через x.occupants, где x - определенный элемент в пределах и может иметь характеристику обитателей. Таким образом, foo получает вызов, перемещается по списку и затем возвращает все элементы, которые передают условие проверки, которое является x.occant.
На языке, подобном Java, вы должны создать класс с именем «x», x 'затем присваиваются массиву или тому подобное. X будет иметь поле, называемое «оккупантами», и каждый индекс будет проверяться с помощью метода x.occupants, который возвращает номер, присвоенный оккупанту. Если этот метод возвращается больше 1 (мы предполагаем, что int здесь, поскольку частичный пассажир был бы нечетным). Метод foo (вызывается в массиве или аналогичном в вопросе.) Затем возвращал массив или аналогичный, как определено в методе foo для этого контейнера или того, что у вас есть. Элементы возвращаемого массива будут объектами «x» в первом массиве thingie, которые соответствуют критериям «Больше чем 1».
Python имеет встроенные методы посредством понимания списка, чтобы справиться с этим в гораздо более сжатым и значительно упрощенным способом. Вместо того, чтобы реализовывать два полных класса и несколько методов, я пишу одну строку кода.
Существует элемент событий в данных объекта. Это должно получить Ваш запущенный, можно считать элементы и сохранить обработчики в массиве перед развязыванием. Комментарий, если Вы нуждаетесь в большем количестве помощи. Я получил эту идею от чтения $ .fn.clone метод, так смотрите на это также.
$(document).ready(function() {
$('#test').click(function(e) {
alert('test');
var events = $('#test').data("events");
$('#test').unbind('click', events.click[0]);
});
});
<a id="test">test</a>
Для развязывания обработчика событий, в который необходимо передать функцию-обработчик, развязывают (). Таким образом, у Вас уже есть функция-обработчик, все, что необходимо сделать, помнят это.
Существует плагин jQuery под названием Копировать события , который копирует события из одного объекта в другой. Это можно очень легко использовать, чтобы «сохранить» события из одного элемента и вернуть их позже. Еще один вариант :)
Edit: исправлена неработающая ссылка
Вот как этого добиться, предоставляет методы storeEvents
и restoreEvents
для выбора. storeEvents
делает снимок событий в момент их вызова. restoreEvents
восстанавливает последний предыдущий снимок. Возможно, потребуется немного его подкрутить для параметризации отмены привязки при восстановлении, возможно, вы захотите сохранить связанные события после последнего снимка.
(function($){
function obj_copy(obj){
var out = {};
for (i in obj) {
if (typeof obj[i] == 'object') {
out[i] = this.copy(obj[i]);
}
else
out[i] = obj[i];
}
return out;
}
$.fn.extend({
storeEvents:function(){
this.each(function(){
$.data(this,'storedEvents',obj_copy($(this).data('events')));
});
return this;
},
restoreEvents:function(){
this.each(function(){
var events = $.data(this,'storedEvents');
if (events){
$(this).unbind();
for (var type in events){
for (var handler in events[type]){
$.event.add(
this,
type,
events[type][handler],
events[type][handler].data);
}
}
}
});
return this;
}
});
})(jQuery);