Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Trash Can - CanJS 3.1">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <p>Drag the items into the trash!</p>
<script type="text/stache" id="app-template">
  <div class='trash' ($dropon)="dropped(%arguments)">
    <div class='lid'>Trash</div>
    <div class='can'>{{dropCount}} items in the can</div>
  </div>
  {{#each items}}
  <div class="item" ($draginit)="draginit(.)" ($dragend)="dragend()">
    {{name}}
  </div>
  {{/each}}
</script>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script src="//jquerypp.com/release/latest/jquerypp.js"></script>
<script src="https://unpkg.com/can/dist/global/can.all.js"></script>
</body>
</html>
 
var AppVM = can.DefineMap.extend({
  items: {
    value: function(){
      return new Array(20).fill(null).map(function(u, i){
        return {name: "Item "+i}
      })
    }
  },
  get dropCount(){
    return 20 - this.items.length;
  },
  itemBeingDragged: "any",
  draginit: function(item){
    this.itemBeingDragged = item;
  },
  dragend: function(){
    this.itemBeingDragged = null;
  },
  dropped: function(args){
    var index = this.items.indexOf( this.itemBeingDragged);
    this.items.splice(index, 1);
  }
});
var template = can.stache.from("app-template");
var frag = template(new AppVM());
document.body.appendChild(frag);
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
justinbmeyerpro
0viewers