jQuery: отсоедините обработчики событий, чтобы связать их позже

Как это должно работать, насколько я могу судить, проверяет, пуст ли пул (0) списка или состоит из singleton (1) через x.occupants, где x - определенный элемент в пределах и может иметь характеристику обитателей. Таким образом, foo получает вызов, перемещается по списку и затем возвращает все элементы, которые передают условие проверки, которое является x.occant.

На языке, подобном Java, вы должны создать класс с именем «x», x 'затем присваиваются массиву или тому подобное. X будет иметь поле, называемое «оккупантами», и каждый индекс будет проверяться с помощью метода x.occupants, который возвращает номер, присвоенный оккупанту. Если этот метод возвращается больше 1 (мы предполагаем, что int здесь, поскольку частичный пассажир был бы нечетным). Метод foo (вызывается в массиве или аналогичном в вопросе.) Затем возвращал массив или аналогичный, как определено в методе foo для этого контейнера или того, что у вас есть. Элементы возвращаемого массива будут объектами «x» в первом массиве thingie, которые соответствуют критериям «Больше чем 1».

Python имеет встроенные методы посредством понимания списка, чтобы справиться с этим в гораздо более сжатым и значительно упрощенным способом. Вместо того, чтобы реализовывать два полных класса и несколько методов, я пишу одну строку кода.

39
задан glaz666 5 February 2009 в 15:07
поделиться

4 ответа

Существует элемент событий в данных объекта. Это должно получить Ваш запущенный, можно считать элементы и сохранить обработчики в массиве перед развязыванием. Комментарий, если Вы нуждаетесь в большем количестве помощи. Я получил эту идею от чтения $ .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>
23
ответ дан bendewey 6 February 2009 в 01:07
поделиться

Для развязывания обработчика событий, в который необходимо передать функцию-обработчик, развязывают (). Таким образом, у Вас уже есть функция-обработчик, все, что необходимо сделать, помнят это.

0
ответ дан meouw 6 February 2009 в 01:07
поделиться
  • 1
    Я думаю, что вопрос был: для человечности, где мог бы scala быть, чтобы я мог правильно установить SCALA_HOME. – Richard Sitze 28 July 2013 в 06:39

Существует плагин jQuery под названием Копировать события , который копирует события из одного объекта в другой. Это можно очень легко использовать, чтобы «сохранить» события из одного элемента и вернуть их позже. Еще один вариант :)

Edit: исправлена ​​неработающая ссылка

1
ответ дан 27 November 2019 в 02:51
поделиться

Вот как этого добиться, предоставляет методы 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);
8
ответ дан 27 November 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: