Web Component: j-Suggestion

  • Info
  • HTML
  • JS
  • CSS
  • Meta


  • easy usage for different cases
  • supports 3 orientations left, center and right
  • singleton
  • works with Bootstrap Grid System
  • works with touches
  • supports dark mode


Method: component.show(orientation, targetElement, [items/function(search, next)], clickCallback)

  • orientation {String} can be left, center or right
  • targetElement {Selector/jQuery/Element} a target where the component will be visible
  • items {Array} optional and must have this structure: [{ name: String, value: String, icon: String }] otherwise will be items read from the target's data-options attribute.
  • callback(selectedItem) {Function} is triggered when the user clicks on the item

Method: component.hide()


  • targetElement can contain data-options="Name 1|ti-building|Value 1;Name 2|ti-github|Value 2;" attribut with all items of the context menu.


  • placeholder - a placeholder for the search input

Server-side searching:

SETTER('suggestion', 'show', element, function(search, next) {
    next([{ name: 'Item 1' }, { name: 'Item 2' }]);
}, function(selected) {

If the value isn't defined then the component uses name as value.

Global events:

ON('suggestion', function(visible, component, target) {
    console.log('Suggestion is', visible ? 'visible' : 'hidden');