Methods

Methods are actions that take place on Magnet instances.

jQuery methods follow the jQuery UI pattern .magnet('methodName', /* arguments */);

$('.grid').magnet()
  .magnet('hide', elem)
  .magnet('layout')
  //Chaining is broken by methods that return values
  .magnet('getFilteredItems');

Vanilla javascript methods follow the pattern magnet.methodName(/* arguments */), but they cannot be chained.

var elem = document.querySelector('.grid');
var mgnt = new Magnet(elem);
mgnt.hide(elem);
mgnt.layout();
mgnt.getFilteredItems();

Arrange and layout

arrange

Arguments: Yes Type: Object

Filters, sorts and lays out items. Accepts an option object as an argument to apply filtering and sorting.

//jQuery
$('.grid').magnet('arrange', options);
//Arrange is the main method of Magnet
//Both lines produce the same result
$('.grid').magnet(options);
//vanilla JS
mgnt.arrange(options);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

layout

Arguments: No

Lays out all items. Refreshes the layout, if an item has changed size and items need to be laid out again.

//jQuery
$('.grid').magnet('layout');
//vanilla JS
mgnt.layout();

Click item to change size

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

layoutItems

Arguments: Yes Type: Array of Items, Boolean

Lays out specified items.

//jQuery
$('.grid').magnet('layoutItems', items, instant);
//vanilla JS
mgnt.layout(items, instant);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

updateSortData

Arguments: No

Updates sort data.

//jQuery
$('.grid').magnet('updateSortData');
//vanilla JS
mgnt.updateSortData();
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

shuffle

Arguments: No

Lays out items in a random order.

//jQuery
$('.grid').magnet('shuffle');
//vanilla JS
mgnt.shuffle();
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

hide

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Hides items.

//jQuery
$('.grid').magnet('hide', elements);
//vanilla JS
mgnt.hide(elements);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

reveal

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Reveals hidden items.

//jQuery
$('.grid').magnet('reveal', elements);
//vanilla JS
mgnt.reveal(elements);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

Add or remove items

append

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Adds and lays out elements as items to the end of the layout.

//jQuery
$('.grid').magnet('append', elements);
//vanilla JS
mgnt.append(elements);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

prepend

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Adds and lays out elements as items to the beginning of the layout.

//jQuery
$('.grid').magnet('prepend', elements);
//vanilla JS
mgnt.prepend(elements);
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305
Aluminium 13 Al 26.981
Silicium 14 Si 28.085
Phosphorus 15 P 30.973
Sulphur 16 S 32.06
Chlorum 17 Cl 35.45
Argon 18 Ar 39.948

additems

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Adds items to the layout, therefore to the instance. Items are not laid out.

//jQuery
$('.grid').magnet('addItems', elements);
//vanilla JS
mgnt.addItems(elements);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

insert

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Adds elements as items to the layout and filters, sorts and lays out items.

//jQuery
$('.grid').magnet('insert', elements);
//vanilla JS
mgnt.insert(elements);
Hydrogenium 1 H 1.008
Lithium 3 Li 6.94
Borium 5 B 10.81
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305
Silicium 14 Si 28.085
Sulphur 16 S 32.06
Argon 18 Ar 39.948

remove

Arguments: Yes Type: Element, NodeList, Array or jQuery Object

Removes elements as items from the layout, therefore from the instance and DOM.

//jQuery
$('.grid').magnet('remove', elements);
//vanilla JS
mgnt.remove(elements);
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

Utilities

reloadItems

Arguments: No

Updates all items data. Applies changes made to the DOM to Magnet.

//jQuery
$('.grid').magnet('reloadItems');
//vanilla JS
mgnt.reloadItems();
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

getItem

Arguments: Yes Type: Element Returns: Item

Returns an item from the layout.

//jQuery
var item = $('.grid').magnet('getItem', element);
console.log(item);
//vanilla JS
var item = mgnt.getItem(element);
console.log(item);

Open the console to view result

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

getItems

Arguments: Yes Type: Element, NodeList, Array or jQuery Object Returns: Array of Items

Returns an array of all items from the layout.

//jQuery
var items = $('.grid').magnet('getItem', elements);
console.log(items);
//vanilla JS
var items = mgnt.getItem(elements);
console.log(items);

Open the console to view result

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

getItemsElements

Arguments: No Returns: Array of Items

Returns an array of all items elements from the layout.

//jQuery
var items = $('.grid').magnet('getItemsElements');
console.log(items);
//vanilla JS
var items = mgnt.getItemsElements();
console.log(items);

Open the console to view result

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

getFilteredItems

Arguments: No Returns: Array of Items

Returns an array of filtered items in the current order.

//jQuery
var items = $('.grid').magnet('getFilteredItems');
console.log(items);
//vanilla JS
var items = mgnt.getFilteredItems();
console.log(items);

Open the console to view result

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

getFilteredItemsElements

Arguments: No Returns: Array of Items

Returns an array of filtered items elements in the current order.

//jQuery
var items = $('.grid').magnet('getFilteredItemsElements');
console.log(items);
//vanilla JS
var items = mgnt.getFilteredItemsElements();
console.log(items);

Open the console to view result

Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305

destroy

Arguments: No

Removes all Magnet functionallity and returns the element back to its pre-initialization state.

//jQuery
$('.grid').magnet('destroy');
//vanilla JS
mgnt.destroy();
Hydrogenium 1 H 1.008
Helium 2 He 4.002
Lithium 3 Li 6.94
Beryllium 4 Be 9.012
Borium 5 B 10.81
Carbonium 6 C 12.011
Nitrogenium 7 N 14.007
Oxygenium 8 O 15.999
Fluorum 9 F 18.998
Neon 10 Ne 20.179
Natrium 11 Na 22.989
Magnesium 12 Mg 24.305