This To Do list is a good example of using Sortables in lists which have items dynamically added : Sortable « Mootools « JavaScript DHTML

JavaScript DHTML
1. Ajax Layer
2. Data Type
3. Date Time
4. Development
5. Document
6. Dojo toolkit
7. Event
8. Event onMethod
9. Ext JS
10. Form Control
11. GUI Components
12. HTML
13. Javascript Collections
14. Javascript Objects
15. Javascript Properties
16. jQuery
17. Language Basics
18. Mochkit
19. Mootools
20. Node Operation
21. Object Oriented
22. Page Components
23. Rico
24. Scriptaculous
25. Security
26. SmartClient
27. Style Layout
28. Table
29. Utilities
30. Window Browser
31. YUI Library
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
JavaScript DHTML » Mootools » Sortable 
This To Do list is a good example of using Sortables in lists which have items dynamically added
 

<!--
MooTools is released under the Open Source MIT license, 
which gives you the possibility to use it and modify 
it in every circumstance. 
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <style type="text/css">
#addTask {
  width: 490px;
  margin: 10px;
  background: #efefef;
  border: 1px solid #a7a7a7;
  text-align: center;
  padding: 5px;
}

#todo li .drag-handle {
  cursor: pointer;
  width: 16px;
  height: 16px;
  background: url('move.png') no-repeat center;
  float: left;
  margin-right: 5px;
}

#todo {
  list-style: none;
  border: 1px solid #ccc;
  margin: 10px auto 10px auto;
  width: 75%;
  padding: 10px 510px 5%;
}

#listArea {
  width: 500px;
  border: 1px solid #ccc;
  background: #efefef;
  margin: 10px;
}  
  
  </style>
  <script type="text/javascript" src="mootools.js"></script>
  <script type="text/javascript">
window.addEvent('domready', function() {

  //This is the function that will run every time a new item is added or the 
  //list is sorted.
  var showNewOrder = function() {
    //This function means we get serialize() to tell us the text of each 
    //element, instead of its ID, which is the default return.
    var serializeFunction = function(el) { return el.get('text'); };
    //We pass our custom function to serialize();
    var orderTxt = sort.serialize(serializeFunction);
    //And then we add that text to our page so everyone can see it.
    $('data').set('text', orderTxt.join(' '));
  };
  
  //This code initalizes the sortable list.
  var sort = new Sortables('.todo', {
    handle: '.drag-handle',
    //This will constrain the list items to the list.
    constrain: true,
    //We'll get to see a nice cloned element when we drag.
    clone: true,
    //This function will happen when the user 'drops' an item in a new place.
    onComplete: showNewOrder
  });

  //This is the code that makes the text input add list items to the <ul>,
  //which we then make sortable.
  var i = 1;
  $('addTask').addEvent('submit', function(e) {
    e.stop();
    //Get the value of the text input.
    var val = $('newTask').get('value');
    //The code here will execute if the input is empty.
    if (!val) {
      $('newTask').highlight('#f00').focus();  
      return//Return will skip the rest of the code in the function. 
    }
    //Create a new <li> to hold all our content.
    var li = new Element('li', {id: 'item-'+i, text:val});
    //This handle element will serve as the point where the user 'picks up'
    //the draggable element.
    var handle = new Element('div', {id:'handle-'+i'class':'drag-handle'});
    handle.inject(li, 'top');
    //Set the value of the form to '', since we've added its value to the <li>.
    $('newTask').set('value', '');
    //Add the <li> to our list.
    $('todo').adopt(li);
    //Do a fancy effect on the <li>.
    li.highlight();
    //We have to add the list item to our Sortable object so it's sortable.
    sort.addItems(li);
    //We put the new order inside of the data div.
    showNewOrder();
    i++;
  });
  
});  
  </script>
  <title>Dynamic Sortables Demo</title>
</head>
<body>
  <h1>Dynamic Sortables</h1>
  <h2>Introduction</h2>
  <p>
    This To Do list is a good example of using Sortables in lists which have items dynamically added.  Notice that on line 47 of the JavaScript file, we make a call to sort.addItems().  It is critical that we call this method on our Sortables object every time we add a new item to the list.
  </p>
  <h2>My To Do List</h2>
  <form id="addTask">
    <input type="text" id="newTask" />
    <input type="submit" value="Add Task" />
  </form>

  <div id="listArea">
    <ol id="todo"></ol>
  </div>

  <div id="data"/>
</body>
</html>


   
     
  
Related examples in the same category
1. Sortables Demo
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.