title: Need help stopping slideshow using jQuery
body: <p>I've run into an issue with jQuery code that I'd like some help on.  While the next and previous buttons work correctly, there appears to be an issue correctly stopping a slideshow.  This is probably something we're completely overlooking, but I can't see <em>what</em>.</p>
  
  <p><strong>There is no JavaScript errors showing in the console.</strong>  The interrupt method was being reached - at one point I had <em>console.log</em> calls in there to verify (cleaned up for presentation reasons).</p>
  
  <p><a href="http://jsfiddle.net/eLn83ep0/" rel="nofollow">http://jsfiddle.net/eLn83ep0/</a></p>
  
  <p>Your help is much appreciated.</p>
  
  <p>The below code is the functionality for prev/stop/start/next:</p>
  
  <pre><code>      if ($(settings.next).size()) {
  
          $(settings.next).bind('click.scrollface', function (e) {
            methods.interrupt.call($this);
            methods.next.call($this);
          });
  
        }
  
        if ($(settings.pause).size()) {
  
          $(settings.pause).bind('click.scrollface', function (e) {
              methods.interrupt.call($this);
          });
  
        }
        if ($(settings.play).size()) {
  
          $(settings.play).bind('click.scrollface', function (e) {
            methods.interrupt.call($this);
            methods.start.call($this);
          });
  
        }
  
        /*
        * Setup up prev bindings
        */
  
        if ($(settings.prev).size()) {
  
          $(settings.prev).bind('click.scrollface', function (e) {
            methods.interrupt.call($this);
            methods.prev.call($this);
          });
  
        }
  </code></pre>
  
  <p>Here is the method for interrupt:</p>
  
  <pre><code>interrupt: function (time) {
    return $(this).each(function () {
  
      var data = $(this).data('scrollface');
      console.log(data);
      console.log('...');
      if (!data) {
        return false;
      }
  
  
      var $this = $(this),
      period    = 0;
  
  
      /*
      * Stop the timer, and wait a period of time before restarting it.
      * Period defaults to the timer interval
      */
  
      if (data.timer) {
        if (typeof time !== "number") {
          period = data.interval;
        } else {
          period = time;
        }
  
        methods.stop.call(this);
  
        setTimeout(function resume_timer () {
        clearInterval(data.timer);
        data.timer = null;
          methods.start.call($this);
        }, period);
  
      }
  
    });
  
  },
  </code></pre>