├── .gitignore
├── README.md
├── bower.json
├── dist
├── tinytrigger.js
└── tinytrigger.min.js
├── index.js
├── package.json
└── test
└── index.js
/.gitignore:
--------------------------------------------------------------------------------
1 | lib-cov
2 | *.seed
3 | *.log
4 | *.csv
5 | *.dat
6 | *.out
7 | *.pid
8 | *.gz
9 | pids
10 | logs
11 | results
12 | npm-debug.log
13 | node_modules
14 | .idea
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # tiny-trigger
2 |
3 | Trigger cross-browser DOM events. Works with [Browserify](http:/browserify.org) and as a standalone.
4 |
5 | [](https://ci.testling.com/scottcorgan/tiny-trigger)
6 |
7 | ## Install
8 |
9 | NPM
10 |
11 | ```
12 | npm install tiny-trigger --save
13 | ```
14 |
15 | Bower
16 |
17 | ```
18 | bower install tiny-trigger --save
19 | ```
20 |
21 | ```html
22 |
23 | ```
24 |
25 | ## Usage
26 |
27 | Browserify
28 |
29 | ```js
30 | var trigger = require('tiny-trigger');
31 |
32 | document.querySelector('.some-element').addEventListener('click', function (e) {
33 | //
34 | });
35 |
36 | trigger('.some-element', 'click');
37 | ```
38 |
39 | Browser
40 |
41 | ```js
42 | var trigger = window.tinyTrigger;
43 |
44 | document.querySelector('.some-element').addEventListener('click', function (e) {
45 | //
46 | });
47 |
48 | trigger('.some-element', 'click');
49 | ```
50 |
51 | ## trigger(selector, event[, multiple])
52 |
53 | * `selector` - css selector OR DOM element OR array of DOM elements
54 | * `event` - the name of the event to trigger
55 | * `multple` - if passing in a css selector, should the function find one element or all the elements that match the selector (querySelector vs querySelectorAll)
56 |
57 | ## Run Tests
58 |
59 | Requires [Phantomjs](phantomjs.org/download.html) is installed
60 |
61 | ```
62 | npm install
63 | npm test
64 | ```
65 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tiny-trigger",
3 | "main": "dist/tinytrigger.js",
4 | "version": "0.1.2",
5 | "homepage": "https://github.com/scottcorgan/tiny-trigger",
6 | "authors": [
7 | "Scott Corgan "
8 | ],
9 | "description": "Trigger cross-browser DOM events",
10 | "keywords": [
11 | "trigger",
12 | "browser",
13 | "events",
14 | "tiny"
15 | ],
16 | "license": "MIT",
17 | "ignore": [
18 | "**/.*",
19 | "node_modules",
20 | "bower_components",
21 | "test",
22 | "tests",
23 | "build",
24 | ".gitignore",
25 | "package.json"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/dist/tinytrigger.js:
--------------------------------------------------------------------------------
1 | !function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.tinyTrigger=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o dist/tinytrigger.js && echo 'Bundled'",
9 | "minify": "node_modules/.bin/uglifyjs dist/tinytrigger.js -o dist/tinytrigger.min.js -m && echo 'Minified'",
10 | "build": "npm test && npm run bundle && npm run minify"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/scottcorgan/tiny-trigger.git"
15 | },
16 | "keywords": [
17 | "trigger",
18 | "dom",
19 | "events",
20 | "tiny"
21 | ],
22 | "author": "Scott Corgan",
23 | "license": "MIT",
24 | "bugs": {
25 | "url": "https://github.com/scottcorgan/tiny-trigger/issues"
26 | },
27 | "devDependencies": {
28 | "browserify": "^12.0.1",
29 | "domy-insert": "~0.2.3",
30 | "tap-spec": "^4.1.0",
31 | "tape": "^4.2.2",
32 | "testling": "~1.5.6",
33 | "uglify-js": "~2.4.8"
34 | },
35 | "testling": {
36 | "files": [
37 | "test/index.js"
38 | ],
39 | "browsers": [
40 | "iexplore/10.0",
41 | "iexplore/9.0",
42 | "iexplore/8.0",
43 | "firefox/16..latest",
44 | "chrome/22..latest",
45 | "safari/5.1..latest",
46 | "ipad/6.0..latest",
47 | "iphone/6.0..latest",
48 | "android-browser/4.2..latest"
49 | ]
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | var e = require('../index.js');
2 | var test = require('tape');
3 | var insert = require('domy-insert');
4 |
5 | test('triggers DOM event', function (t) {
6 | insert('').end();
7 |
8 | document
9 | .querySelector('.trigger-me')
10 | .addEventListener('click', function (e) {
11 | t.ok(true, 'event called');
12 | t.end();
13 | });
14 |
15 | e('.trigger-me', 'click');
16 | });
17 |
18 | test('triggers multiple events', function (t) {
19 | var calls = 0;
20 |
21 | insert('').end();
22 | insert('').end();
23 |
24 | var elements = [].slice.call(document.querySelectorAll('.multi'), 0);
25 |
26 | for (var i in elements) {
27 | elements[i].addEventListener('click', function (e) {
28 | calls += 1;
29 | });
30 | }
31 |
32 | e('.multi', 'click', true);
33 |
34 | setTimeout(function () {
35 | t.equal(calls, 2, 'all elements triggered event');
36 | t.end();
37 | }, 1);
38 | });
39 |
40 | test('triggers events for array of DOM elements passed in', function (t) {
41 | var calls = 0;
42 | var elements = document.querySelectorAll('.multi');
43 |
44 | for (var i in [].slice.call(elements, 0)) {
45 | elements[i].addEventListener('click', function (e) {
46 | calls += 1;
47 | });
48 | }
49 |
50 | e(elements, 'click', true);
51 |
52 | setTimeout(function () {
53 | t.equal(calls, 2, 'all elements triggered event');
54 | t.end();
55 | }, 1);
56 | });
--------------------------------------------------------------------------------