JSFiddle - React, Tailwind, and code Playground
by kapik
JavaScript
// Le ; sécurise si un éventuel code précédent n'est pas "fermé"
;(function($, PLUGIN_NAME, window, document, screen, navigator) {
// Valeurs par défaut
var defaults = {
selector: 'body',
... : ...
};
// Structure des données pour la BD (sera envoyée en AJAX)
var datadb = {
name : null,
page : document.location.href,
... : ...
};
// Tableau contenant plusieurs datadb
// Permet de ne pas surcharger le navigateur en requête AJAX
var alldatadb = [];
function monplugin(options){
// Merge des options définies par l'utilisateur
// true pour récursif et {} pour ne pas écraser les valeurs par défaut
this.opts = $.extend(true, {}, defaults, options);
// Initialisation des données
this.init();
// Lancement du tracker sur le click
this.ctrlclick();
}
monplugin.prototype.init = function () {
// Contrôle que la page appelée via AJAX est configurée
// Sinon arrêt du plugin et notification dans la console JS
if(this.opts.phpdb == null){
throw new Error(PLUGIN_NAME+' : Le paramètre `phpdb` est obligatoire !');
}
// Controle des parametres obligatoires
// Traitement des données, nettoyage, conversion...
// Alimentation de datadb si la donnée ne dépend de l'action click
}
monplugin.prototype.ctrlclick = function () {
// element correspond à l'objet jquery de ce qui est renseigné dans $(element).monplugin();
// element.selector : le sélecteur (ex: "#page")
// element.selector * : pour pouvoir récupérer l'élément cliqué (ex: un <a> dans #page)
var timer,
opts = this.opts;
$(this.opts.selector+','+this.opts.selector+' *').live('mouseup',function(event){
// On stop la propagation du click sinon les...