jQuery UI Draggable - Events : UI Draggable « jQuery « JavaScript Tutorial






<!--
  jQuery UI Effects Blind 1.7.2
 
  Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
  Dual licensed under the MIT (MIT-LICENSE.txt)
  and GPL (GPL-LICENSE.txt) licenses.
 
 
-->
<!doctype html>
<html lang="en">
<head>
  <title>jQuery UI Draggable - Events</title>
  <link type="text/css" href="js/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="js/ui/ui.core.js"></script>
  <script type="text/javascript" src="js/ui/ui.draggable.js"></script>
  <link type="text/css" href="js/demos.css" rel="stylesheet" />
  <style type="text/css">
    #draggable { width: 16em; padding: 0 1em; }
    #draggable ul li { margin: 1em 0; padding: 0.5em 0; } * html #draggable ul li { height: 1%; }
    #draggable ul li span.ui-icon { float: left; }
    #draggable ul li span.count { font-weight: bold; }
  </style>
  <script type="text/javascript">
    $(function() {
      var $start_counter = $('#event-start'), $drag_counter = $('#event-drag'), $stop_counter = $('#event-stop');
      var counts = [0,0,0];

      $("#draggable").draggable({
        start: function() {
          counts[0]++;
          updateCounterStatus($start_counter,counts[0]);
        },
        drag: function() {
          counts[1]++;
          updateCounterStatus($drag_counter,counts[1]);
        },
        stop: function() {
          counts[2]++;
          updateCounterStatus($stop_counter,counts[2]);
        }
      });
    });

    function updateCounterStatus($event_counter,new_count) {
      // first update the status visually...
      if (!$event_counter.hasClass('ui-state-hover')) {
        $event_counter.addClass('ui-state-hover')
          .siblings().removeClass('ui-state-hover');
      }
      // ...then update the numbers
      $('span.count',$event_counter).text(new_count);
    }
  </script>
</head>
<body>

<div class="demo">

<div id="draggable" class="ui-widget ui-widget-content">

  <p>Drag me to trigger the chain of events.</p>

  <ul class="ui-helper-reset">
    <li id="event-start" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-play"></span>"start" invoked <span class="count">0</span>x</li>
    <li id="event-drag" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-arrow-4"></span>"drag" invoked <span class="count">0</span>x</li>
    <li id="event-stop" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-stop"></span>"stop" invoked <span class="count">0</span>x</li>
  </ul>
</div>

</div><!-- End demo -->

<div class="demo-description">

<p>
Layer functionality onto the draggable using the <code>start</code>, <code>drag</code>, and <code>stop</code> events.  Start is fired at the start of the drag; drag during the drag; and stop when dragging stops.
</p>

</div><!-- End demo-description -->

</body>
</html>








30.142.UI Draggable
30.142.1.jQuery UI Draggable - Constrain movement
30.142.2.jQuery UI Draggable - Cursor style
30.142.3.jQuery UI Draggable - Default functionality
30.142.4.jQuery UI Draggable - Delay start
30.142.5.jQuery UI Draggable - Events
30.142.6.jQuery UI Draggable - Handles
30.142.7.jQuery UI Draggable - Revert position
30.142.8.jQuery UI Draggable - Auto-scroll
30.142.9.jQuery UI Draggable - Snap to element or grid
30.142.10.jQuery UI Draggable + Sortable
30.142.11.jQuery UI Draggable - Visual feedback
30.142.12.Change cursor for draggable tag
30.142.13.Set cursor position for the draggable
30.142.14.Can only drag along with axis y
30.142.15.Drag delay
30.142.16.Drag along a grid
30.142.17.revert: true (fly back)
30.142.18.Add border to the draggable
30.142.19.Only draggable inside parent
30.142.20.Snap to another
30.142.21.start and stop events
30.142.22.Add dragging stopped event handler
30.142.23.Disable, enable and destroy the draggable object
30.142.24.Set the handles for all directions
30.142.25.Add knobHandles