# j-Exec

> El componente ejecuta un método cuando el usuario hace clic en el mismo elemento con la clase exec, exec2 o exec3. Más información está a continuación. El componente es un singleton y funciona para todo el HTML.

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

El componente ejecuta un método cuando el usuario hace clic en el mismo elemento con la clase `exec`, `exec2` o `exec3`. Más información está a continuación. El componente es un singleton y funciona para todo el documento HTML.

__Elementos__:
- Los elementos pueden contener el atributo `data-exec` con un nombre de método que se ejecutará cuando el usuario haga clic en el elemento.
- Los elementos pueden contener el atributo `data-href` y el componente realiza `REDIRECT()`.

__Atributos__:
- `data-exec="METHOD_NAME"` ejecuta un método cuando el usuario hace clic (admite llamadas de complemento mediante el carácter `?`)
- `data-prevent="true"` impide continuar en el evento `click`
- `data-href="URL"` realiza `REDIRECT()`

__Atributos para el doble clic__:
- `data-exec2="METHOD_NAME"` ejecuta un método cuando el usuario hace clic (admite llamadas de complemento mediante el carácter `?`)
- `data-prevent2="true"` impide continuar en el evento `click`
- `data-href2="URL"` realiza `REDIRECT()`

__Atributos para el menú contextual__:
- `data-exec3="METHOD_NAME"` ejecuta un método cuando el usuario hace clic (admite llamadas de complemento mediante el carácter `?`)
- `data-href3="URL"` realiza `REDIRECT()`

__Es bueno saberlo__:

- el componente ejecuta una función de destino en el formato `function(element, event)`
- `data-exec=`, `data-exec2=`, `data-exec3=` pueden contener `@METHOD_NAME` que se ejecutará en las llamadas del complemento del componente actual `component/METHOD_NAME(element, e)`.


__NUEVO: Extensiones__:

```js
SETTER('exec/register', function(exec, el, e, type) {

	// @exec {String} a value from data-exec
	// @el {jQuery element}
	// @e {Event}
	// @type {String} empty '': click, '2': double-click '3': context menu
	// registers a new extension

	if (exec.charAt(0) === '/') {

		EXEC('customplugin/' + exec.substring(1), el, e);

		// "return true" stops the next processing of Exec
		return true;

	}

});
```

Úselo con `<ui-component name="exec">`. Cuando el componente aún no está cargado, jComponent lo descarga en el primer uso desde la dirección en `DEF.fallback` (el CDN Componentator de forma predeterminada). Autor: Peter Širka. Fuente: repositorio de componentes Componentator, licencia MIT.

```html example.html
<ui-component name="exec"></ui-component>
<a href="javascript:void(0)" class="exec" data-exec="myClick">1</a>
<a href="javascript:void(0)" class="exec" data-exec="myClick">2</a>
<p class="exec" data-exec="myClick">3</p>
<span class="exec" data-exec="myClick">4</span>
<div class="exec" data-exec="myClick">5</div>

<script>
	function myClick(el) {
        alert('CLICK: ' + el.html());
    }
</script>
```
