diff --git a/js/tinyDOM.js b/js/tinyDOM.js index e2485aa5e2561fb7ffd49e8f55a156736e4e285c..dfc493e36d54df4358c4b0332721a5bec5bb9460 100644 --- a/js/tinyDOM.js +++ b/js/tinyDOM.js @@ -120,23 +120,37 @@ return tinyDOM(a); }, data: function (key, value) { - var e = this[0]; if (typeof (value) !== 'undefined') { - e.setAttribute('data-' + key, value); + this.each(function(i, e){ + e.setAttribute('data-' + key, value); + }); return this; } else { - return e.getAttribute('data-' + key); + return this[0].getAttribute('data-' + key); } }, attr: function (key, value) { - var e = this[0]; if (typeof (value) !== 'undefined') { - e.setAttribute(key, value); + this.each(function(i, e){ + e.setAttribute(key, value); + }); return this; } else { - return e.getAttribute(key); + return this[0].getAttribute(key); } }, + class: function(classname, addremove){ + if(tinyDOM.exists(addremove)){ + this.each(function(i, e){ + e.classList.toggle(classname, addremove); + }); + } else { + this.each(function(i, e){ + e.classList.toggle(classname); + }); + } + return this; + }, trigger: function (eventName, data, bubbles, cancelable) { bubbles = tinyDOM.exists(bubbles) ? bubbles : true; cancelable = tinyDOM.exists(cancelable) ? cancelable : true; diff --git a/js/tinyDOM.min.js b/js/tinyDOM.min.js index a8254be1d654c510d212e03142e0cee6d1f8b900..7fd1fbc7b428022cc1bda909c6e10e0b356e4225 100644 --- a/js/tinyDOM.min.js +++ b/js/tinyDOM.min.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,t,n;Element&&!Element.prototype.matches&&(e=Element.prototype,e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t=function(e){var t,n,s;if(null===e||"undefined"==typeof e)this.length=0;else if("string"==typeof e)for(t=document.querySelectorAll(e),this.length=t.length,n=0;n<t.length;n++)s=t.item(n),this[n]=s;else if(e.length)for(n=0;n<e.length;n++)s=e[n],this[n]=s;else this[0]=e,this.length=1;return this},n=function(e){return new t(e)},n.fn=t.prototype={each:function(e){for(var t=this.length;t--;)e(t,this[t],this);return this},on:function(e,t,n){return"string"==typeof t?this.each(function(s,r){r.addEventListener(e,function(e){var s=e.target,i=!1;do s&&s.matches(t)?(n.call(s,e),i=!0):(s=s.parentNode,s&&s.matches&&s!==r||(i=!0));while(i!==!0)})}):(n=t,this.each(function(t,s){s.addEventListener(e,n)})),this},first:function(){return"undefined"!=typeof this[0]?n(this[0]):null},parent:function(e){var t=this[0].parentNode,s=!0;if(n.exists(e)){for(;null!==t&&t!==document;){if(t.matches(e)){s=!1;break}t=t.parentNode}t=s?null:t}return n(t)},children:function(){var e,t=this[0].childNodes,s=[];for(e=0;e<t.length;e++)n.isElement(t[e])&&s.push(t[e]);return n(s)},data:function(e,t){var n=this[0];return"undefined"!=typeof t?(n.setAttribute("data-"+e,t),this):n.getAttribute("data-"+e)},attr:function(e,t){var n=this[0];return"undefined"!=typeof t?(n.setAttribute(e,t),this):n.getAttribute(e)},trigger:function(e,t,s,r){s=n.exists(s)?s:!0,r=n.exists(r)?r:!0;var i=new CustomEvent(e,t,s,r);return this.each(function(e,t){t.dispatchEvent(i)}),this}},n.isElement=function(e){var t=!1;try{t=e instanceof HTMLElement}catch(n){t=e.nodeType&&1===e.nodeType}return t},n.isJson=function(e){try{return JSON.parse(e),null!==e&&"undefined"!=typeof e}catch(t){return!1}},n.exists=function(e){return null!==e&&"undefined"!=typeof e},n.merge=function(e,t){if(this.exists(e)&&this.exists(t)){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}return null},n.byID=function(e){return n(document.getElementById(e))},n.triggerOn=function(e,t,s,r,i){r=n.exists(r)?r:!0,i=n.exists(i)?i:!0,e.dispatchEvent(new CustomEvent(t,s,r,i))},n.ajax=function(e){var t,n,s=new XMLHttpRequest,r={method:"GET",url:"",async:!0,user:null,password:null,responseType:"text",data:null,headers:[],callbacks:{}},i=function(e){return function(t){e(t.currentTarget.response,t)}};if(this.merge(r,e),s.responseType=r.responseType,this.exists(r.callbacks))for(t in r.callbacks)r.callbacks.hasOwnProperty(t)&&s.addEventListener(t,i(r.callbacks[t]));for(s.open(r.method,r.url,r.async,r.user,r.password),n=0;n<r.headers.length;n++)s.setRequestHeader(r.headers[n].header,r.headers[n].value);return s.send(r.data),s},window.μ||(window.μ=n),window.mu||(window.mu=n)}(); +!function(){"use strict";var e,t,n;Element&&!Element.prototype.matches&&(e=Element.prototype,e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t=function(e){var t,n,s;if(null===e||"undefined"==typeof e)this.length=0;else if("string"==typeof e)for(t=document.querySelectorAll(e),this.length=t.length,n=0;n<t.length;n++)s=t.item(n),this[n]=s;else if(e.length)for(n=0;n<e.length;n++)s=e[n],this[n]=s;else this[0]=e,this.length=1;return this},n=function(e){return new t(e)},n.fn=t.prototype={each:function(e){for(var t=this.length;t--;)e(t,this[t],this);return this},on:function(e,t,n){return"string"==typeof t?this.each(function(s,r){r.addEventListener(e,function(e){var s=e.target,i=!1;do s&&s.matches(t)?(n.call(s,e),i=!0):(s=s.parentNode,s&&s.matches&&s!==r||(i=!0));while(i!==!0)})}):(n=t,this.each(function(t,s){s.addEventListener(e,n)})),this},first:function(){return"undefined"!=typeof this[0]?n(this[0]):null},parent:function(e){var t=this[0].parentNode,s=!0;if(n.exists(e)){for(;null!==t&&t!==document;){if(t.matches(e)){s=!1;break}t=t.parentNode}t=s?null:t}return n(t)},children:function(){var e,t=this[0].childNodes,s=[];for(e=0;e<t.length;e++)n.isElement(t[e])&&s.push(t[e]);return n(s)},data:function(e,t){return"undefined"!=typeof t?(this.each(function(n,s){s.setAttribute("data-"+e,t)}),this):this[0].getAttribute("data-"+e)},attr:function(e,t){return"undefined"!=typeof t?(this.each(function(n,s){s.setAttribute(e,t)}),this):this[0].getAttribute(e)},"class":function(e,t){return this.each(n.exists(t)?function(n,s){s.classList.toggle(e,t)}:function(t,n){n.classList.toggle(e)}),this},trigger:function(e,t,s,r){s=n.exists(s)?s:!0,r=n.exists(r)?r:!0;var i=new CustomEvent(e,t,s,r);return this.each(function(e,t){t.dispatchEvent(i)}),this}},n.isElement=function(e){var t=!1;try{t=e instanceof HTMLElement}catch(n){t=e.nodeType&&1===e.nodeType}return t},n.isJson=function(e){try{return JSON.parse(e),null!==e&&"undefined"!=typeof e}catch(t){return!1}},n.exists=function(e){return null!==e&&"undefined"!=typeof e},n.merge=function(e,t){if(this.exists(e)&&this.exists(t)){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}return null},n.byID=function(e){return n(document.getElementById(e))},n.triggerOn=function(e,t,s,r,i){r=n.exists(r)?r:!0,i=n.exists(i)?i:!0,e.dispatchEvent(new CustomEvent(t,s,r,i))},n.ajax=function(e){var t,n,s=new XMLHttpRequest,r={method:"GET",url:"",async:!0,user:null,password:null,responseType:"text",data:null,headers:[],callbacks:{}},i=function(e){return function(t){e(t.currentTarget.response,t)}};if(this.merge(r,e),s.responseType=r.responseType,this.exists(r.callbacks))for(t in r.callbacks)r.callbacks.hasOwnProperty(t)&&s.addEventListener(t,i(r.callbacks[t]));for(s.open(r.method,r.url,r.async,r.user,r.password),n=0;n<r.headers.length;n++)s.setRequestHeader(r.headers[n].header,r.headers[n].value);return s.send(r.data),s},window.μ||(window.μ=n),window.mu||(window.mu=n)}(); //# sourceMappingURL=tinyDOM.min.js.map diff --git a/js/tinyDOM.min.js.map b/js/tinyDOM.min.js.map index 38269c03185c0b18635cb6b4d2df0369676e163f..9daeb310e857359f63d51bfa5718606130fef73e 100644 --- a/js/tinyDOM.min.js.map +++ b/js/tinyDOM.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["tinyDOM.js"],"names":["proto","TinyDOMFunction","tinyDOM","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","elements","i","e","this","length","document","querySelectorAll","item","fn","each","l","on","ev","del","addEventListener","firedevent","target","matched","call","parentNode","first","parent","stn","exists","children","n","childNodes","a","isElement","push","data","key","value","setAttribute","getAttribute","attr","trigger","eventName","bubbles","cancelable","event","CustomEvent","dispatchEvent","node","is","HTMLElement","nodeType","isJson","obj","JSON","parse","merge","json1","json2","prop","hasOwnProperty","byID","id","getElementById","triggerOn","ajax","options","req","XMLHttpRequest","params","method","url","async","user","password","responseType","headers","callbacks","makeListener","callback","currentTarget","response","open","setRequestHeader","header","send","window","μ","mu"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["tinyDOM.js"],"names":["proto","TinyDOMFunction","tinyDOM","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","elements","i","e","this","length","document","querySelectorAll","item","fn","each","l","on","ev","del","addEventListener","firedevent","target","matched","call","parentNode","first","parent","stn","exists","children","n","childNodes","a","isElement","push","data","key","value","setAttribute","getAttribute","attr","class","classname","addremove","classList","toggle","trigger","eventName","bubbles","cancelable","event","CustomEvent","dispatchEvent","node","is","HTMLElement","nodeType","isJson","obj","JSON","parse","merge","json1","json2","prop","hasOwnProperty","byID","id","getElementById","triggerOn","ajax","options","req","XMLHttpRequest","params","method","url","async","user","password","responseType","headers","callbacks","makeListener","callback","currentTarget","response","open","setRequestHeader","header","send","window","μ","mu"],"mappings":"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"} \ No newline at end of file