gettocat / items

minimalistic js library to manage items list.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

items lib

Minimalistic js library to manage items list. View live demo

Items preview

Installation

  • add to you page items.css and items.js
  • init library:
var itms = new items();
  • add class item to listed elements.
  • add item-header and item-footer, if this need.

For example:

<div id='list1'>
  <div class="item-header">
    <a href="#" onclick="return itms.selectAll()" class="btn btn-primary">Select all</a>
    <a href="#" onclick="return itms.unselectAll()" class="btn btn-primary">Clear selection</a>
    <a href="#" onclick="itms.getSelected(function(el) { $(el).remove(); });" class="hideOnEmptySelection hide btn btn-danger">Delete selected</a>
  </div>
  <div class='item' data-id='1'>item 1</div>
  <div class='item' data-id='2'>item 2</div>
  <div class='item' data-id='3'>item 3</div>
  <div class="item-footer"></div>
</div>

Methods

itms.select(el); // select element
itms.unselect(el); //remove selection on element 
itms.selectAll(); //select all elements
itms.unselectAll(); //remove selection from all elements

Callbacks

itms.onHasSelected(function() {
  //action on one or more selected items
});

itms.onHasNoSelected(function() {
  //action on zero selected items
});

itms.onSelect(function() {
  //action on new selected item
});

itms.onUnSelect(function() {
  //action on new onselected item
});

itms.getSelected(function(el) { // this callback will be triggered on each selected item
    var id = $(el).data("id"); //for example - get id of item from data-id
    
    fake_ajax(function(resp) {//send async query
        itms2.unselect(el);//unselect item
        if (resp.status == 1)
            $(el).remove();//and remove it from list
    });

});

itms.getAllSelected(function(arr){
    //arr is Array of $(element);
});

itms.getAllSelectedAttr('id', function(arr){
    //arr is Array of value data-id of elements
});

Advanced usage

If you need a more then one list on page, use this code:

var itm11 = new items("#tags");//#tag its a selector, where search elements of this list, by default - document.
var itms2 = new items("#categoryes");

Constructor params

var itm1 = new items("#tags", {
  scope: "Selected items: ",//text of footer items. 
  item_selector: '.item',//selector of one item
  active_item_class: 'item-selected', //class, adding to selected item
  header_selector: ".item-header",//list header selector
  footer_selector: ".item-footer",//list footer selector
});

About

minimalistic js library to manage items list.

License:MIT License


Languages

Language:HTML 87.3%Language:JavaScript 11.2%Language:CSS 1.5%