Метод с в случае

0

Я использую следующий фрагмент кода для обработки событий прокрутки с помощью плагина

  handleScroll: function () {

            var contentdiv = $(".gridcontent");
            scrollTop = contentdiv.scrollTop();
            var vScrollDist = Math.abs(scrollTop - prevScrollTop);
            if (vScrollDist) {
                vScrollDir = prevScrollTop < scrollTop ? 1 : -1;                
                prevScrollTop = scrollTop;


            }
        },

        test:function(){
        },

но я не могу вызвать метод теста из метода handlescroll (event). Можете ли вы заглянуть в это. Спасибо заранее

  • 1
    Handlescroll является обратным вызовом? Как это вызывается? Пожалуйста, дайте полную картину о том, что вы пытаетесь сделать.
  • 1
    Проблема может быть в контексте выполнения, используемом handleScroll , кто его называет и как?
Показать ещё 2 комментария
Теги:
widget

1 ответ

2

Поскольку вы пытаетесь привязать событие к методу в классе (по моему прототипу), вам понадобится привязать метод к this или он будет ссылаться на глобальное состояние. Поэтому, когда вы добавляете слушателя, сделайте следующее:

contentdiv.bind("scroll", $.proxy(this.handleScroll, this));//or use fn.bind

Таким образом, это будет ссылаться на ваш экземпляр плагина, а не на окно.

  • 1
    Вы также можете использовать $.proxy(this.handleScroll, this) ... и не нужно добавлять шим
  • 1
    Хороший вопрос, плохо обновить его!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню