Skip to content

Sign up

Product

Features

Mobile

Actions

Codespaces

Packages

Security

Code review

Issues

Integrations

GitHub Sponsors

Customer stories

Team

Enterprise

Explore

Explore GitHub

Learn and contribute

Topics

Collections

Trending

Learning Lab

Open source guides

Connect with others

The ReadME Project

Events

Community forum

GitHub Education

GitHub Stars program

Marketplace

Pricing

Plans

Compare plans

Contact Sales

Education

In this repository All GitHub ↵

Jump to ↵

No suggested jump to results

In this repository All GitHub ↵

Jump to ↵

In this user All GitHub ↵

Jump to ↵

In this repository All GitHub ↵

Jump to ↵

Sign in
Sign up

remy / min.js Public

Notifications

Fork 92

Star 1.1k

Code

Issues 5

Pull requests 3

Actions

Projects

Wiki

Security

Insights

More

Permalink

master

Switch branches/tags

Branches Tags

View all branches

min.js/README.md
Go to file

Go to file T

Go to line L

Copy path

Copy permalink

remy Update README.md

Loading status checks…

Latest commit 0520bdb on 22 Jul 2013 History

1 contributor

Users who have contributed to this file

min.js Query elements Events Bind events Custom events Arbitrary events / pubsub Turning off events? Looping Chaining events Silent failing More info

82 lines (54 sloc) 2.76 KB

Raw Blame

Open with Desktop

View raw

Copy raw contents

View blame

min.js

A super tiny JavaScript library to execute simple DOM querying and hooking event listeners. Aims to return the raw DOM node for you to manipulate directly, using HTML5 (et al) tech like element.classList or element.innerHTML, etc.

Query elements

var links = $('p:first-child a');

If there is more than one link, the return value is NodeList, if there's only a single match, you have an Element object. So you need to have an idea of what to expect if you want to modify the DOM.

Events

Bind events

$('p:first-child a').on('click', function (event) {
event.preventDefault();
// do something else
});

Note: the on and trigger methods are on both Node objects and NodeList objects, which also means this affects the document node, so document.on(type, callback) will also work.

Custom events

$('a').on('foo', function () {
// foo was fired
});

$('a:first-child').trigger('foo');

Arbitrary events / pubsub

$.on('foo', function () {
// foo was fired, but doesn't require a selector
});

Turning off events?

Current min.js has no support for turning off events (beyond .removeEventListener -- but even then you don't have the reference function to work with). Currently there's no plans to implement this (as I find I don't disable events very often at all) -- but I'm not closed to the idea. There's an issue open, but it adds quite a bit more logic to a very small file. If there's enough on the issue, I'll add it in. Equally, if you think min.js should stay simple, please -- this is useful too.

Looping

$('p').forEach(function (el, index) {
console.log(el.innerHTML);
});

Note: jQuery-like libraries tend to make the context this the element. Since we're borrowing forEach from the array object, this does not refer to the element.

Chaining events

$('a').on('foo', bar).on('click', doclick).trigger('foobar');

Also when a single element is matched, you have access to it:

$('a').href = '/some-place.html';

Silent failing

Like jQuery, this tiny library silently fails when it doesn't match any elements. As you might expect.

More info

Special thanks and inspired by Andrew Lunny's slide.

I've started using this library in conjunction with some microlibraries that I've written for data binding and XHR.

License: MIT / http://rem.mit-license.org

Go

© 2022 GitHub, Inc.

Terms

Privacy

Security

Status

Docs

Contact GitHub

Pricing

API

Training

Blog

About