155 lines
4.0 KiB
JavaScript
155 lines
4.0 KiB
JavaScript
|
/*! UIkit 2.21.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
||
|
(function(UI) {
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
UI.component('buttonRadio', {
|
||
|
|
||
|
defaults: {
|
||
|
"target": ".uk-button"
|
||
|
},
|
||
|
|
||
|
boot: function() {
|
||
|
|
||
|
// init code
|
||
|
UI.$html.on("click.buttonradio.uikit", "[data-uk-button-radio]", function(e) {
|
||
|
|
||
|
var ele = UI.$(this);
|
||
|
|
||
|
if (!ele.data("buttonRadio")) {
|
||
|
|
||
|
var obj = UI.buttonRadio(ele, UI.Utils.options(ele.attr("data-uk-button-radio"))),
|
||
|
target = UI.$(e.target);
|
||
|
|
||
|
if (target.is(obj.options.target)) {
|
||
|
target.trigger("click");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
init: function() {
|
||
|
|
||
|
var $this = this;
|
||
|
|
||
|
// Init ARIA
|
||
|
this.find($this.options.target).attr('aria-checked', 'false').filter(".uk-active").attr('aria-checked', 'true');
|
||
|
|
||
|
this.on("click", this.options.target, function(e) {
|
||
|
|
||
|
var ele = UI.$(this);
|
||
|
|
||
|
if (ele.is('a[href="#"]')) e.preventDefault();
|
||
|
|
||
|
$this.find($this.options.target).not(ele).removeClass("uk-active").blur();
|
||
|
ele.addClass("uk-active");
|
||
|
|
||
|
// Update ARIA
|
||
|
$this.find($this.options.target).not(ele).attr('aria-checked', 'false');
|
||
|
ele.attr('aria-checked', 'true');
|
||
|
|
||
|
$this.trigger("change.uk.button", [ele]);
|
||
|
});
|
||
|
|
||
|
},
|
||
|
|
||
|
getSelected: function() {
|
||
|
return this.find(".uk-active");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
UI.component('buttonCheckbox', {
|
||
|
|
||
|
defaults: {
|
||
|
"target": ".uk-button"
|
||
|
},
|
||
|
|
||
|
boot: function() {
|
||
|
|
||
|
UI.$html.on("click.buttoncheckbox.uikit", "[data-uk-button-checkbox]", function(e) {
|
||
|
var ele = UI.$(this);
|
||
|
|
||
|
if (!ele.data("buttonCheckbox")) {
|
||
|
|
||
|
var obj = UI.buttonCheckbox(ele, UI.Utils.options(ele.attr("data-uk-button-checkbox"))),
|
||
|
target = UI.$(e.target);
|
||
|
|
||
|
if (target.is(obj.options.target)) {
|
||
|
target.trigger("click");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
init: function() {
|
||
|
|
||
|
var $this = this;
|
||
|
|
||
|
// Init ARIA
|
||
|
this.find($this.options.target).attr('aria-checked', 'false').filter(".uk-active").attr('aria-checked', 'true');
|
||
|
|
||
|
this.on("click", this.options.target, function(e) {
|
||
|
var ele = UI.$(this);
|
||
|
|
||
|
if (ele.is('a[href="#"]')) e.preventDefault();
|
||
|
|
||
|
ele.toggleClass("uk-active").blur();
|
||
|
|
||
|
// Update ARIA
|
||
|
ele.attr('aria-checked', ele.hasClass("uk-active"));
|
||
|
|
||
|
$this.trigger("change.uk.button", [ele]);
|
||
|
});
|
||
|
|
||
|
},
|
||
|
|
||
|
getSelected: function() {
|
||
|
return this.find(".uk-active");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
UI.component('button', {
|
||
|
|
||
|
defaults: {},
|
||
|
|
||
|
boot: function() {
|
||
|
|
||
|
UI.$html.on("click.button.uikit", "[data-uk-button]", function(e) {
|
||
|
var ele = UI.$(this);
|
||
|
|
||
|
if (!ele.data("button")) {
|
||
|
|
||
|
var obj = UI.button(ele, UI.Utils.options(ele.attr("data-uk-button")));
|
||
|
ele.trigger("click");
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
init: function() {
|
||
|
|
||
|
var $this = this;
|
||
|
|
||
|
// Init ARIA
|
||
|
this.element.attr('aria-pressed', this.element.hasClass("uk-active"));
|
||
|
|
||
|
this.on("click", function(e) {
|
||
|
|
||
|
if ($this.element.is('a[href="#"]')) e.preventDefault();
|
||
|
|
||
|
$this.toggle();
|
||
|
$this.trigger("change.uk.button", [$this.element.blur().hasClass("uk-active")]);
|
||
|
});
|
||
|
|
||
|
},
|
||
|
|
||
|
toggle: function() {
|
||
|
this.element.toggleClass("uk-active");
|
||
|
|
||
|
// Update ARIA
|
||
|
this.element.attr('aria-pressed', this.element.hasClass("uk-active"));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
})(UIkit);
|