Vapour Plugin Design
By Pierre Dubois / @duboi5p
jQuery(function($) {
$.ajaxSettings.cache = false;
$(document).on("wb.timerpoke", "[data-ajax-replace]", function(event) {
var _elm, _url;
_elm = $(this);
_url = _elm.data("ajax-replace");
_elm.load(_url, function() {
return $(this).trigger("wb.ajax-replace-loaded");
});
window._timer.remove("[data-ajax-replace]");
return void 0;
});
return window._timer.add("[data-ajax-replace]");
});
jQuery(function($) {
$(document).on("wb.ajax-replace-loaded", ".wb-menu", function(event) {
var _elm, _wlist;
_elm = $(this);
_wlist = _elm.find("li:has(.drp-dwn)");
_wlist.find("> :header").addClass("wb-tle-lnk").append("<span class=\"expandicon\"></span>");
return _wlist.attr("aria-haspopup", "false").attr("role", "presentation");
});
$(document).on("mouseenter focusin", ".wb-menu li:has(.drp-dwn)", function(event) {
var _elm;
_elm = $(this);
_elm.parents(".wb-menu").first().find("[aria-haspopup]").attr("aria-haspopup", "false");
return _elm.attr("aria-haspopup", "true");
});
return $(document).on("mouseleave focusout", ".wb-menu", function(event) {
var _elm;
_elm = $(this);
return _elm.find("[aria-haspopup]").attr("aria-haspopup", "false");
});
});
// Faster: single event handler for both events
$('#elem').on('mouseover mouseout', function(event) {
if (event.type === 'mouseover') {
// mouseover
} else {
// mouseout
}
});
// Slower: separate event handler for each events
$('#elem').on('mouseover', function() {
// mouseover
});
$('#elem').on('mouseout', function() {
// mouseout
});
Avoid to use JS for styling
Javascript
DOM Level 3 Events Specification
Wheel, Keyboard, Composition, Mutation
pseudo-classes
:hover
:focus
:touch-action
:enabled
:disabled
:checked
:indeterminate
wb.timerpoke
$(document).on("wb.timerpoke", "[data-ajax-replace]", function(event) {
$(document).on("wb.timerpoke", ".wb-carousel", function(event) {
[...]
_sldr.trigger("carousel.init.wb");
[...]
$(document).on("carousel.init.wb", ".wb-carousel", function(event) {
WET + Heat = Vapour
Take a look Migration TODO List
Archive online Plugin
Presentation made by Pierre Dubois (@duboi5p)