# j-Exec

> Le composant exécute une méthode lorsque l'utilisateur clique sur le même élément avec la classe exec, exec2 ou exec3. Plus d’informations ci-dessous. Le composant est un singleton et il fonctionne pour l'ensemble du HTML

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

Le composant exécute une méthode lorsque l'utilisateur clique sur le même élément avec la classe `exec`, `exec2` ou `exec3`. Plus d’informations ci-dessous. Le composant est un singleton et fonctionne pour l’ensemble du document HTML.

__Éléments__ :
- Les éléments peuvent contenir l'attribut `data-exec` avec un nom de méthode qui sera exécuté lorsque l'utilisateur cliquera sur l'élément.
- Les éléments peuvent contenir l'attribut `data-href` et le composant exécute `REDIRECT()`.

__Attributs__ :
- `data-exec="METHOD_NAME"` exécute une méthode lorsque l'utilisateur clique (prend en charge les appels de plugin via le caractère `?`)
- `data-prevent="true"` empêche la poursuite de l'événement `click`
- `data-href="URL"` exécute `REDIRECT()`

__Attributs du double clic__ :
- `data-exec2="METHOD_NAME"` exécute une méthode lorsque l'utilisateur clique (prend en charge les appels de plugin via le caractère `?`)
- `data-prevent2="true"` empêche la poursuite de l'événement `click`
- `data-href2="URL"` exécute `REDIRECT()`

__Attributs du menu contextuel__ :
- `data-exec3="METHOD_NAME"` exécute une méthode lorsque l'utilisateur clique (prend en charge les appels de plugin via le caractère `?`)
- `data-href3="URL"` exécute `REDIRECT()`

__Bon à savoir__ :

- le composant exécute une fonction cible sous la forme `function(element, event)`
- `data-exec=`, `data-exec2=`, `data-exec3=` peuvent contenir `@METHOD_NAME` qui sera exécuté dans les appels du plugin du composant actuel `component/METHOD_NAME(element, e)`


__NOUVEAU : Extensions__ :

```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;

	}

});
```

Utilisez-le avec `<ui-component name="exec">`. Lorsque le composant n'est pas encore chargé, jComponent le télécharge lors de la première utilisation depuis l'adresse dans `DEF.fallback` (le CDN Componentator par défaut). Auteur : Peter Širka. Source : le référentiel de composants Componentator, licence 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>
```
