Search code examples
jqueryjquery-waypoints

Load content while scrolling using waypoints plugin


I use the plugin waypoints (http://imakewebthings.com/jquery-waypoints/)

*EDIT : working solution : http://pastebin.com/x95Qf7m8 *

What I'm trying to do is to load the share widget contained in my link when the "share-this" tag is scrolled down.

You may notice the use of head.ready which is just a replacement of document.ready as I use headjs to load my external scripts.

My question is simple, why is it working when triggered by a click, but not using the waypoint plugin ? Any help would be welcome

My website : http://www.entendu.info

head.ready(function() {


$('.share-this').waypoint(function(event, direction) {
   if (direction === 'down') {

    var contentId = $('.share-this').attr('rel');
    var uri = $('.share-this').attr('rev');

    e.preventDefault();
    //console.log('clicked');

    $.ajax({
   url: 'http://www.entendu.info/share',
   type: 'GET',
   dataType: 'html',
   data: {id:contentId, url:uri},
   complete: function(xhr, textStatus) {

   },
   success: function(data, textStatus, xhr) {

   $('#'+contentId).html(data);
   },
   error: function(xhr, textStatus, errorThrown) {

   }
   });

   }
   else {

      // do this on the way back up through the waypoint
   }



   });



});




<div class="content" id="{$posts[i].PID}" style="float:left">
<a href="" class="share-this" rel="{$posts[i].PID}" rev={$posts[i].name|escape:'htmlall'}">

<img src="{$imageurl}/share2.png" width="379" height="22" style="opacity: 0.5; float:left"></a>
</div>

Solution

  • In the function you say e.preventDefault() but there is no e. Your event is named event. If you look in your console you will see the error "e is not defined". Plus, preventing default within a waypoint handler does nothing, so I'm not sure what the point of that line is anyway.