2013-10-24 2 views
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 (событие). Не могли бы вы заглянуть в это. Спасибо заранее

+1

Является ли handlescroll обратным вызовом? Как он вызван? Пожалуйста, дайте полную картину того, что вы пытаетесь сделать. – PSL

+1

Проблема может быть контекстом выполнения, используемым 'handleScroll', который называется так и как? –

+0

contentdiv.bind ("scroll", this.handleScroll); Здесь contentdiv является элементом Div. Я привязываю событие прокрутки к этому div с помощью метода handlescroll – Raja

ответ

2

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

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

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

+1

Вы можете использовать '$ .proxy (this.handleScroll, this)' также ... и нет необходимости добавлять shim – PSL

+1

Хорошая точка, плохо обновите ее! – megawac

+0

при условии, что решение работает отлично для меня. Спасибо за вашу помощь – Raja

Смежные вопросы