# j-Info

> j-Info: singleton; show: SETTER('info', 'show', options)

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: en
Content-SHA256: 22afaed060f24fad85fc7cf1081758b7efd87fa3b63ee12894997877febc322f
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

- singleton
- show: `SETTER('info', 'show', options)`
- hide: `SETTER('info', 'hide')`

__Show options__:

- `opt.element` {jQuery} an element where will be `j-Info` displayed
- `opt.align` {String} align `left` (default), `center`, `right` or `half`
- `opt.html` {String} a HTML content
- `opt.name` {String} a name of Tangular template, must be defined in `j-Info` body like example below
- `opt.value` {Object} a model for Tangular template
- `opt.minwidth` {Number} a minimal width (default: `100`)
- `opt.maxwidth` {Number} a maximal width (default: `280`)
- `opt.offsetX` {Number} `x` offset (default: `0`)
- `opt.offsetY` {Number} `y` offset (default: `0`)
- `opt.offsetWidth` {Number} `width` offset (default: `0`)
- `opt.callback` {Function(isvisible)} a callback is executed when the element is hidden
- `opt.class` {String} a custom class name
- `opt.closeclick` {Boolean} closes info when user performs mouse click (default: `false`)
- __NEW__ `opt.position` {String} position `top` (default) or `bottom`
- __NEW__ `opt.x` {Number} enables absolute position (`opt.y` is not required)
- __NEW__ `opt.y` {Number} enables absolute position (`opt.x` is not required)

```javascript
var opt = {};
opt.element = YOUR_ELEMENT;
opt.html = 'TEST';
SETTER('info', 'show', opt);
```

__or with Tangular templates:__

```html
<ui-component name="info">

	<script type="text/html" name="template1">
		{{ value.name }}
	</script>

	<script type="text/html" name="template2">
		<h2>{{ value.firstname }} {{ value.lastname }}</h2>
	</script>

	<script type="text/html" name="template3">
		{{ value.description }}
	</script>

</ui-component>

<script>
function some_caller() {
	var opt = {};
	opt.element = YOUR_ELEMENT;
	opt.name = 'template1';
	opt.value = { name: 'Peter' };
	SETTER('info', 'show', opt);
}
</script>
```

Use it with `<ui-component name="info">`. When the component is not loaded yet, jComponent downloads it on first use from the address in `DEF.fallback` (the Componentator CDN by default). Author: Peter Širka. Source: the Componentator components repository, MIT license.

```html example.html
<style>
	body { background-color: #F0F0F0; }
</style>

<ui-component name="info"></ui-component>

<br />
<div class="container">
	<a href="javascript:void(0)">Mouse hover here</a>
</div>

<script>
	$(document).on('mouseenter mouseleave', 'a', function(e) {
		if (e.type === 'mouseenter') {
			var opt = {};
			opt.element = this;
			opt.html = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate nobis omnis quae commodi recusandae dolore saepe blanditiis, eligendi accusamus optio!';
			SETTER('info', 'show', opt);
		} else
			SETTER('info', 'hide');
	});
</script>
```
