mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-07 06:57:02 +08:00
simple jquery
This commit is contained in:
103
dist/ionic-simple.js
vendored
103
dist/ionic-simple.js
vendored
@ -7,8 +7,16 @@
|
||||
ionic.Components.push(instance);
|
||||
};
|
||||
|
||||
ionic.get = function(elementId) {
|
||||
return ionic.component( document.getElementById(elementId) );
|
||||
};
|
||||
|
||||
ionic.component = function(el) {
|
||||
if(el) {
|
||||
if(el.component) {
|
||||
// this element has already been initialized as a component
|
||||
return el.component;
|
||||
}
|
||||
for(var x = 0; x < ionic.Components.length; x++) {
|
||||
if( ionic.Components[x].isComponent(el) ) {
|
||||
// this element is a component, init its view
|
||||
@ -27,14 +35,20 @@
|
||||
|
||||
while(el) {
|
||||
// climb up the tree looking to see if the target
|
||||
// is or is in a registered component
|
||||
component = ionic.component(el);
|
||||
if(component) {
|
||||
component[eventName] && component[eventName](e.gesture.srcEvent);
|
||||
return;
|
||||
// is or is in a registered component. If its already
|
||||
// been set that its NOT a component don't bother.
|
||||
if(el.isComponent !== false) {
|
||||
component = ionic.component(el);
|
||||
if(component) {
|
||||
component[eventName] && component[eventName](e.gesture.srcEvent);
|
||||
return;
|
||||
}
|
||||
// not sure if this element is a component yet,
|
||||
// keep climbing up the tree and check again
|
||||
// remember that this element is not a component so
|
||||
// it can skip this process in the future
|
||||
el.isComponent = false;
|
||||
}
|
||||
// not sure if this element is a component yet,
|
||||
// keep climbing up the tree and check again
|
||||
el = el.parentElement;
|
||||
}
|
||||
}
|
||||
@ -92,6 +106,68 @@
|
||||
});
|
||||
|
||||
})(ionic);;
|
||||
(function(window, document, ionic) {
|
||||
|
||||
ionic.fn = {
|
||||
val: function() {
|
||||
var ret, x;
|
||||
for(x = 0; x < this.length; x++) {
|
||||
ret = this[x].component.val.apply(this[x].component, arguments);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (window.jQuery) {
|
||||
// if jQuery is present then it should be the default
|
||||
jq = window.jQuery;
|
||||
|
||||
// extend the methods which are in ionic.fn and in jQuery.fn
|
||||
for(var name in ionic.fn) {
|
||||
var jQueryFn = jq.fn[name];
|
||||
jq.fn[name] = function() {
|
||||
var
|
||||
x,
|
||||
ret; // if incase this isn't an ionic component
|
||||
|
||||
for(x = 0; x < this.length; x++) {
|
||||
ionic.component( this[x] );
|
||||
if( this[x].component ) {
|
||||
ret = this[x].component[name].apply(this[x].component, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
// if this isn't an ionic component, run the usual jQuery fn
|
||||
return jQueryFn.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// jQuery is not already present, so use our 'lil version instead
|
||||
jq = {
|
||||
|
||||
init: function(selector, context) {
|
||||
context = context || document;
|
||||
var
|
||||
x,
|
||||
dom = context.querySelectorAll(selector) || [];
|
||||
for(x = 0; x < dom.length; x++) {
|
||||
ionic.component( dom[x] );
|
||||
}
|
||||
dom.__proto__ = ionic.fn;
|
||||
dom.selector = selector || '';
|
||||
return dom;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$ = function(selector, context) {
|
||||
return jq.init(selector, context);
|
||||
}
|
||||
}
|
||||
|
||||
})(this, document, ionic);
|
||||
;
|
||||
(function(ionic) {
|
||||
|
||||
ionic.registerComponent({
|
||||
@ -105,7 +181,7 @@
|
||||
if(el) {
|
||||
|
||||
// check if we've already created a Toggle instance for this element
|
||||
if(!el._instance) {
|
||||
if(!el.component) {
|
||||
|
||||
// find all the required elements that make up a toggle
|
||||
var opts = {
|
||||
@ -116,18 +192,13 @@
|
||||
};
|
||||
|
||||
// validate its a well formed toggle with the required pieces
|
||||
if(!opts.checkbox || !opts.track || !opts.handle) {
|
||||
return;
|
||||
}
|
||||
|
||||
// ensure the handle is draggable
|
||||
opts.handle.draggable = true;
|
||||
if(!opts.checkbox || !opts.track || !opts.handle) return;
|
||||
|
||||
// initialize an instance of a Toggle
|
||||
el._instance = new ionic.views.Toggle(opts);
|
||||
el.component = new ionic.views.Toggle(opts);
|
||||
}
|
||||
|
||||
return el._instance;
|
||||
return el.component;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user