Noosev1.0.0 Examples
Examples of the noose tool and various options/use cases.
Initialization
Simple initialization using the default options.
new Noose('#simple-initialization')
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="simple-initialization"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
Options
classes
Use classes option to apply custom styling.
new Noose('#option-classes', { select: 'td', classes: { noose: 'noose-light', selected: 'selected-green' } })
.noose-light { border-color: #FFF !important; background-color: rgba(36, 143, 220, 0.3); } .selected-green { background-color: rgba(26, 247, 153, 0.5); }
<div id="option-classes" class="table-dark"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
detach
Setting detach
to false
leaves the noose element attached to the container
element, so it will still be visible after noose-ing ends.
new Noose('#option-detach', { select: 'td', classes: { noose: 'noose-light-red', selected: 'selected' }, detach: false })
.noose-light-red { border-color: #FFF !important; background-color: rgba(216, 10, 10, 0.4); } .selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-detach"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
mode
Setting mode
to 'fit'
will not select the
element until the entire element fit within the noose.
new Noose('#option-mode-fit', { select: 'td', mode: 'fit' })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-mode-fit"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
scroll, scrollEdge, and scrollbar
By default, the container will be scrolled when the noose is moved over the scroll edge area. Clicking on the scrollbar will not activate the noose.
new Noose('#option-scroll', { select: 'td', scroll: 5, scrollEdge: 17, scrollbar: 17 // Size of scrollbar })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-scroll" style="max-height: 300px; overflow: auto; position: relative;"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
select
Select only certain elements by specifying the select
option.
new Noose('#option-select', { select: 'tr' })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-select"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
select
Disable selection by setting select
option to false
.
new Noose('#option-select-false', { select: false })
<div id="option-select-false"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
start, move, and stop
Handling start and stop events.
new Noose('#option-start-move-stop', { select: 'td', start: function(e, coors) { $('#option-start-move-stop-result').text('Selecting...'); }, move: function(e, coors, selected) { $('#option-start-move-stop-result').text('In progress...' + selected.length + ' cell(s) selected'); }, stop: function(e, coors, selected) { $('#option-start-move-stop-result').text(selected.length + ' cell(s) selected'); } })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-start-move-stop"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div> <div id="option-start-move-stop-result" class="p-2 my-2 border"></div>
style
Custom styling of noose.
new Noose('#option-style', { select: 'td', style: { border: 'dashed 2px red', zIndex: 9999 } })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-style"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
throttle
Set throttle to 0 for no delay. Only do this for small selectable sets.
new Noose('#option-throttle', { select: 'td', throttle: 0 })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="option-throttle"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>
Methods
compute
Manually call compute() to select elements.
new Noose('#method-compute', { select: 'td', compute: false, stop: function(e, coors, selected) { this.compute(); $('#method-compute-result').text(this.selected.length + ' cell(s) selected'); } })
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="method-compute"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div> <div id="method-compute-result" class="p-2 my-2 border"></div>
[de]register
Manually register/deregister containers. Unlike the enabled option, this will completely remove add/remove all functionality.
(function() { var noose = new Noose('#method-de-register', { select: 'td', }); var container = document.getElementById('method-de-register'); var lbl = document.getElementById('method-de-register-lbl'); var deregisterBtn = document.getElementById('method-deregister-btn'); var registerBtn = document.getElementById('method-register-btn'); deregisterBtn.addEventListener('click', function() { noose.deregister(container); lbl.innerHTML = 'Deregistered'; }); registerBtn.addEventListener('click', function() { noose.register(container); lbl.innerHTML = 'Registered'; }); }())
.selected { background-color: rgba(36, 143, 220, 0.3) !important; }
<div id="method-de-register-actions" class="p-2 my-2 border"> <button type="button" id="method-deregister-btn">Deregister</button> <button type="button" id="method-register-btn">Register</button> <span id="method-de-register-lbl"></span> </div> <div id="method-de-register"> <table> <thead>...</thead> <tbody>...</tbody> </table> </div>