2015-01-03 2 views
-6
var item = $('.card'); 

     var pageLoaded = false; 
     var waypoints = item.waypoint(function(direction) { 

      if($('.content').css('display') !== 'block'){ 
console.log('yes it did fire here'); 
       $(this).addClass("animated doneAnimated" + (pageLoaded ? " fadeInUp" : "")); 
      } 
     }, { 
      offset: '90%' 
     }); 

     pageLoaded = true; 

Над кодом работал в jquery, но я переключился на zepto. Я не знаю, почему $ (это) в zepto - это что-то другое. Как писать в чистых js, чтобы заставить код работать?

+4

Если «Pure JS» означает «Без библиотеки JS, написанной кем-то другим», вы не можете. Функция '$' создает объект jQuery (или Zepto). Вы не можете использовать библиотеку jQuery (или Zepto), не используя библиотеку. – Quentin

ответ

1

$(this) возвращает объект jQuery, поэтому нет смысла спрашивать, как реализовать это за пределами jQuery.

Что вы можете реализовать это addClass функция, которую вы можете легко сделать с помощью DOM:

this.className += "animated doneAnimated" + (pageLoaded ? " fadeInUp" : "")); 

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

Однако zepto already supports addClass functionality и zepto also supports $(this) где this - любой элемент DOM.

Вы должны изучить, что функция путевой точки передается как аргумент вашей функции: похоже, что-то еще не так с вашим кодом. Можете ли вы указать точное сообщение об ошибке, которое вы можете, и придумать минимальный тест?

+0

Я предполагаю, что это должно быть: '$ (this.element) .addClass (...);' Хорошая точка! –

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