jComponent extends jQuery by adding these new features:
$(selector).aclass(value)$(selector).asvg(value)$(selector).attrd(key, [value])$(selector).binder()$(selector).CMD()$(selector).component()$(selector).components(fn)$(selector).FIND()$(selector).hclass(value)$(selector).noscrollbar([force])$(selector).psvg(value)$(selector).rattr(name)$(selector).rattrd(name)$(selector).rescroll([offset])$(selector).rclass(value)$(selector).rclass2(search)$(selector).tclass(value)$(selector).RECONFIGURE()$(selector).SETTER()$(selector).scope()$(selector).vbind()$(selector).vbindarray()$(selector).aclass(value)Method adds class from the element/elements.
$(selector).aclass(value);
// @value {String} class name
// return {jQuery}
$('.button').aclass('selected');
$(selector).asvg(value)Method appends SVG element.
$(selector).asvg(value);
// @value {String} raw HTML or tag name
// return {jQuery}
// With raw HTML:
$('.svg').asvg('<line ... ><rect ... >');
// With tag name:
var rect = $('.svg').asvg('rect');
rect.attr('x', 100);
$(selector).attrd(key, [value])Method gets/sets data- attribute from the element/elements
$(selector).attrd(key, [value]);
// @key {String} attribute name without "data-"
// @value {String} optional, a value for attribute
// return {jQuery}
$('#element').attrd('name', 'Peter');
// <div id="element" data-name="Peter"></div>
console.log($('#element').attrd('name'));
// Output: Peter
$(selector).binder()+v17 Method returns one current/parent data-bind instance (if exists). It travelses parents element too.
$(selector).binder();
// return {Binder} or null
console.log($('[data-bind]').binder());
$(selector).CMD()+v17 Executes a command in all components according to the selector. It executes a registered method via component.command().
$(selector).CMD(name, [a], [b], [n..]);
// @name {String} A command name
// @a {Object} Argument A
// @b {Object} Argument B
// @c {Object} Argument N
// return {jQuery}
$(selector).CMD('mycommand');
$(selector).component()Method returns one component instance (if exists). It travelses parents element too.
$(selector).component();
// return {jComponent} or null
console.log($('[data-jc]').component());
$(selector).components(fn)Method finds all jComponents on the selector path.
$(selector).component(fn);
// return {jQuery}
$('#components').components(function(component) {
console.log(component);
});
$(selector).FIND()Method performs FIND() according to the selector.
// $(selector).FIND(selector, [many], [callback], [timeout]);
$(selector).FIND();
var textbox = $('div').FIND('textbox');
$(selector).hclass(value)Method performs jQuery.hasClass().
$(selector).hclass(value);
// @value {String} class name
// return {Boolean}
console.log($('.button').hclass('selected'));
$(selector).noscrollbar([force])+v17 Method hides vertical scrollbars. IMPORTANT: the method extends the width of the element by adding width of scrollbar. Width of this element is obtained from the parent element.
$(selector).noscrollbar([force]);
// @force {Boolean} disables cache (default: false)
// return {jQuery}
console.log($('.button').hclass('selected'));
Good to know:
jComponent watches noscrollbar class and it hides vertical scrollbars automatically. This jQuery extension is for special cases.
$(selector).psvg(value)Method prepends SVG element to element.
$(selector).psvg(value);
// @value {String} raw HTML or tag name
// return {jQuery}
// With raw HTML:
$('.rect').psvg('<line ... ><rect ... >');
// With tag name:
var rect = $('.group').psvg('rect');
rect.attr('x', 100);
$(selector).rattr(name)+v12.0.4 Method removes attribute from the element/elements.
$(selector).rattr(name);
// @name {String} Attribute name
// return {jQuery}
$(selector).rattrd(name)+v12.0.4 Method removes data-attribute from the element/elements.
$(selector).rattrd(name);
// @name {String} Attribute name without data-
// return {jQuery}
$(selector).rescroll([offset])REMOVED in v18 +v12.0.4 Method re-scrolls a scroll container to element according to the selector. This method uses scrollIntoView(true) method with a custom implementation offset`.
$(selector).rescroll([offset]);
// @offset {Number} Optional, default: 0
// return {jQuery}
$(selector).rclass(value)Method removes class from the element/elements.
$(selector).rclass(value);
// @value {String} class name
// return {jQuery}
$('.button').rclass('selected');
$(selector).rclass2(value)Method removes all classes according to the text.
$(selector).rclass2(search);
// @search {String} text to search
// return {jQuery}
$('.button').rclass2('fa-');
$(selector).tclass(value)Method toggles class for the element/elements.
$(selector).tclass(value);
// @value {String} class name
// return {jQuery}
$('.button').tclass('selected');
$(selector).RECONFIGURE()Method performs RECONFIGURE() according to the selector for all nested components.
// $(selector).RECONFIGURE(selector, config);
$(selector).RECONFIGURE(selector, config);
$('div').RECONFIGURE('textbox', 'disabled:true');
$(selector).SETTER()Method performs SETTER() according to the selector for all nested components.
// $(selector).SETTER([wait], selector, propOrMethod, [argA], [argB], [..argN]);
$(selector).SETTER();
$('div').SETTER('*', 'reconfigure', 'required:false');
$('div').SETTER('textbox', 'reconfigure', 'disabled:true');
$(selector).scope()Method returns one parent scope instance (if exists).
$(selector).scope();
// return {Scope} or null
console.log($('[data-jc-scope]').component());
$(selector).vbind()Method returns one VBIND instance (if exists).
$(selector).vbind();
// return {VBIND} or null
console.log($('[data-bind]').vbind());
$(selector).vbindarray()Method returns one VBINDARRAY instance (if exists).
$(selector).vbindarray();
// return {VBINDARRAY} or null
console.log($('[data-bind]').vbind());