0.0.12 • Published 2 years ago

data-ws-hooks v0.0.12

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Easily hook html to js

TL;DR

data-ws-onclick="foo"

It hooks between HTML tags and attributes to js functions or events.

See published npm package

Import:

  • Web: <script src="https://unpkg.com/data-ws-hooks/build/bundle.min.js"></script>
  • Node: npm i data-ws-hooks

How to use?

Important! This works if css defines class "hidden" as "display:none", as the hiding here works by toggling this class

- HTML Attributes

AttributeNoteExample
data-ws-onclickWhen element is clicked - it will trigger one of the 3, in that order of precedence: - Fire an action, like hide all elements of class x. See list of actions later. - Fire a window.wsGlobals function - Fire a global window function. Supports nested functions by dot notation.- <button data-ws-onclick="hideClass:popup">Close popup</button> - <button data-ws-onclick="signin">Sign In</button>
data-ws-srcSets a "src" attribute with its value as the "data-ws-src", so to lazy load src instead of blocking the user experience.- <iframe data-ws-src="/embedded/feedback_form.html"/>
data-ws-tabCombined with the classes: "tab-selector", "tab-selector selected", "tab-section", "tab-section hidden" it gives a tab functionality. Important! Allows a single set of tabs per page!<div><span class="tab-selector selected" data-ws-tab="tab1">Tab1</span><span class="tab-selector" data-ws-tab="tab2">Tab2</span></div>
data-ws-toggle-hidden-dataDefines elements to be toggled 'hidden' class when a respective button is clicked.<div data-ws-toggle-hidden-data='signin-dialog'>...</div>
data-ws-toggle-hidden-buttonWhen clicked, toggle 'hidden' class on all elements that share the value in their "data-ws-toggle-hidden-data" attribute.<button data-ws-toggle-hidden-button='signin-dialog'>Sign In</button>

- Built-in onclick actions

Run as: data-ws-onclick="some_action:optional_param"

ActionsNoteExample
hideClass:some_classHide all elements of class some_class.- <button data-ws-onclick="hideClass:popup">Close popup</button>
copy:Copy the value attribute of clicked element- <input data-ws-onclick="copy" type:"text" value="this will be copied"/>
copy:#some_element_idCopy the value attribute of #some_element_id element- <button data-ws-onclick="copy:#some_element_id" >Copy</button>

Showcases

This is used on the following sites:

TODOs:

  • It sometimes hides by styling directly and sometimes by toggling "hidden" class. Inconsistent...
  • Allow more than a single set of tabs on page... Perhaps contain tabs in a parent...

How to contribute & publish updates to this package?

  • This package is published both on GitHub and on npmjs.
  • To publish an updated version - simply run npm publish, it will commit & push updates both to github and npm.
0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago