IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Récupérer Id ContextJS [Plugin]


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut Récupérer Id ContextJS
    Bonjour à tous,

    j'utilise le plugin ContextJS qui permet d'afficher un menu contextuel au clique droit sur un élément (DIV, TD, ...) d'une page.

    Je ne parviens pas à récupérer l'ID de cet élément, quelqu'un pour me donner un coup de main?

    D'avance merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    attr('id')
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Merci pour ta réponse.

    Je vois bien comment récupérer l'ID de l’élément à l'aide de attr('id') mais comment le passer en paramètre des href de mon menu contextuel créé à l'aide de ContextJS.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu as un bout de code ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Ci dessous le code permettant d'associer le menu déroulant aux elements de ma page ayant pour class "MaClass"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    context.attach('.MaClass', [
        {header: 'Mon menu'},
        {text: 'Lien 1', href: 'http://MaPage.html?MonParam=Id'},
        {text: 'Lien 2', href: 'http://MaPage2.html?MonParam=Id'},
    ])
    Je souhaiterais donc passer en param de mes liens l'Id de l’élément sur lequel j'ai fait un clic droit.

    Encore merci.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Au vu du code donné pour GA, j'aurais tenté un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    context.attach('.MaClass', [
     
        {header: 'Mon menu'},
        {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+this.id},
        {text: 'Lien 2', href: 'http://MaPage2.html?MonParam='+this.id},
    ])
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    J'y avais pensé mais this.id me retourne undefined.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu est sur que l'element declencheur à un id ?
    car pour le ga ça fonctionne ;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Comme tu peux le voir ci dessous, mon td a bien un id
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id="PositionSPP9873M" class="PositionSPP ">GA</td>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    context.attach('.PositionSPP ', [		
    	 {header: 'Mon menu'},
             {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+this.id},
             {text: 'Lien 2', href: 'http://MaPage2.html?MonParam='+this.id},
    ]);
    Au risque de passer pour un imbecile, t'entends quoi par GA?

    Merci.

  10. #10
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Il est possible que dans le contexte de la méthode attach() le "this" n'ait pas la valeur espérée. Sauvegarder la valeur de "this" dans "that" au début du fragment de code et utiliser "that.id".

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Merci, j'ai ajouté that=this (voir ligne 102), un alert(that.id) m'affiche bien l'id de l’élément sur lequel j'ai fait un clic droit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    /* 
     * Context.js
     * Copyright Jacob Kelley
     * MIT License
     */
    
    var context = context || (function () {
            that="";
       	var options = {
    		fadeSpeed: 100,
    		filter: function ($obj) {
    			// Modify $obj, Do not return
    		},
    		above: 'auto',
    		preventDoubleContext: true,
    		compress: false
    	};
    
    	function initialize(opts) {
    		options = $.extend({}, options, opts);
    		
    		$(document).on('click', 'html', function () {
    			$('.dropdown-context').fadeOut(options.fadeSpeed, function(){
    				$('.dropdown-context').css({display:''}).find('.drop-left').removeClass('drop-left');
    			});
    		});
    		if(options.preventDoubleContext){
    			$(document).on('contextmenu', '.dropdown-context', function (e) {
    				e.preventDefault();
    			});
    		}
    		$(document).on('mouseenter', '.dropdown-submenu', function(){
    			var $sub = $(this).find('.dropdown-context-sub:first'),
    				subWidth = $sub.width(),
    				subLeft = $sub.offset().left,
    				collision = (subWidth+subLeft) > window.innerWidth;
    			if(collision){
    				$sub.addClass('drop-left');
    			}
    		});
    		
    	}
    
    	function updateOptions(opts){
    		options = $.extend({}, options, opts);
    	}
    
    	function buildMenu(data, id, subMenu) {
    		var subClass = (subMenu) ? ' dropdown-context-sub' : '',
    			compressed = options.compress ? ' compressed-context' : '',
    			$menu = $('<ul class="dropdown-menu dropdown-context' + subClass + compressed+'" id="dropdown-' + id + '"></ul>');
            var i = 0, linkTarget = '';
            for(i; i<data.length; i++) {
            	if (typeof data[i].divider !== 'undefined') {
    				$menu.append('<li class="divider"></li>');
    			} else if (typeof data[i].header !== 'undefined') {
    				$menu.append('<li class="nav-header">' + data[i].header + '</li>');
    			} else {
    				if (typeof data[i].href == 'undefined') {
    					data[i].href = '#';
    				}
    				if (typeof data[i].target !== 'undefined') {
    					linkTarget = ' target="'+data[i].target+'"';
    				}
    				if (typeof data[i].subMenu !== 'undefined') {
    					$sub = ('<li class="dropdown-submenu"><a tabindex="-1" href="' + data[i].href + '">' + data[i].text + '</a></li>');
    				} else {
    					$sub = $('<li><a tabindex="-1" href="' + data[i].href + '"'+linkTarget+'>' + data[i].text + '</a></li>');
    				}
    				if (typeof data[i].action !== 'undefined') {
    					var actiond = new Date(),
    						actionID = 'event-' + actiond.getTime() * Math.floor(Math.random()*100000),
    						eventAction = data[i].action;
    					$sub.find('a').attr('id', actionID);
    					$('#' + actionID).addClass('context-event');
    					$(document).on('click', '#' + actionID, eventAction);
    				}
    				$menu.append($sub);
    				if (typeof data[i].subMenu != 'undefined') {
    					var subMenuData = buildMenu(data[i].subMenu, id, true);
    					$menu.find('li:last').append(subMenuData);
    				}
    			}
    			if (typeof options.filter == 'function') {
    				options.filter($menu.find('li:last'));
    			}
    		}
    		return $menu;
    	}
    
    	function addContext(selector, data) {
    			var d = new Date(),
    			id = d.getTime(),
    			$menu = buildMenu(data, id);
    			
    		$('body').append($menu);
    		
    		
    		$(document).on('contextmenu', selector, function (e) {
    			e.preventDefault();
    			e.stopPropagation();
    			that=this;
    			alert(that.id);
    			$('.dropdown-context:not(.dropdown-context-sub)').hide();
    			
    			$dd = $('#dropdown-' + id);
    			if (typeof options.above == 'boolean' && options.above) {
    				$dd.addClass('dropdown-context-up').css({
    					top: e.pageY - 20 - $('#dropdown-' + id).height(),
    					left: e.pageX - 13
    				}).fadeIn(options.fadeSpeed);
    			} else if (typeof options.above == 'string' && options.above == 'auto') {
    				$dd.removeClass('dropdown-context-up');
    				var autoH = $dd.height() + 12;
    				if ((e.pageY + autoH) > $('html').height()) {
    					$dd.addClass('dropdown-context-up').css({
    						top: e.pageY - 20 - autoH,
    						left: e.pageX - 13
    					}).fadeIn(options.fadeSpeed);
    				} else {
    					$dd.css({
    						top: e.pageY + 10,
    						left: e.pageX - 13
    					}).fadeIn(options.fadeSpeed);
    				}
    			}
    		});
    	}
    	
    	function destroyContext(selector) {
    		$(document).off('contextmenu', selector).off('click', '.context-event');
    	}
    	
    	return {
    		init: initialize,
    		settings: updateOptions,
    		attach: addContext,
    		destroy: destroyContext
    	};
    })();
    En revanche MonParam est vide. Où déclarer la variable that? Je pense que le probleme vient de là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    context.attach('.PositionSPP ', [		
    	 {header: 'Mon menu'},
             {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+that.id},
             {text: 'Lien 2', href: 'http://MaPage2.html?MonParam='+that.id},
    ]);

  12. #12
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    En regardant le code du plugin, je crois que vous cherchez simplement à récupérer l'ID de l'élément du DOM correspondant à votre sélecteur, ici c'est '.PositionSPP '.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var elem = $( ".PositionSPP" )[ 0 ];
     
    context.attach('.PositionSPP ', [
             {header: 'Mon menu'},
             {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+elem.id},
             {text: 'Lien 2', href: 'http://MaPage2.html?MonParam='+elem.id},
    ]);

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Merci d'avoir passé du temps à décortiquer le code du plugin.

    En faite la class PositionSPP est appliquée aux cellules d'un tableau du coup en utilisant ton code, quelque soit la cellule sur laquelle je clique, elem.id me retourne l'id de la première cellule.

  14. #14
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Si le sélecteur contient plusieurs éléments ayant la même classe, le comportement décrit est logique.

    Revenons à l'idée du that = this.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    context.attach('.PositionSPP ', [		
    	 {header: 'Mon menu'},
             {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+that.id},
             {text: 'Lien 2', href: 'http://MaPage2.html?MonParam='+that.id},
    ]);
    Avec pour Context.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    /* 
     * Context.js
     * Copyright Jacob Kelley
     * MIT License
     */
    
    var that = null;
    
    var context = context || (function () {
       	var options = {
    		fadeSpeed: 100,
    		filter: function ($obj) {
    			// Modify $obj, Do not return
    		},
    		above: 'auto',
    		preventDoubleContext: true,
    		compress: false
    	};
    
    	function initialize(opts) {
    		options = $.extend({}, options, opts);
    		
    		$(document).on('click', 'html', function () {
    			$('.dropdown-context').fadeOut(options.fadeSpeed, function(){
    				$('.dropdown-context').css({display:''}).find('.drop-left').removeClass('drop-left');
    			});
    		});
    		if(options.preventDoubleContext){
    			$(document).on('contextmenu', '.dropdown-context', function (e) {
    				e.preventDefault();
    			});
    		}
    		$(document).on('mouseenter', '.dropdown-submenu', function(){
    			var $sub = $(this).find('.dropdown-context-sub:first'),
    				subWidth = $sub.width(),
    				subLeft = $sub.offset().left,
    				collision = (subWidth+subLeft) > window.innerWidth;
    			if(collision){
    				$sub.addClass('drop-left');
    			}
    		});
    		
    	}
    
    	function updateOptions(opts){
    		options = $.extend({}, options, opts);
    	}
    
    	function buildMenu(data, id, subMenu) {
    		var subClass = (subMenu) ? ' dropdown-context-sub' : '',
    			compressed = options.compress ? ' compressed-context' : '',
    			$menu = $('<ul class="dropdown-menu dropdown-context' + subClass + compressed+'" id="dropdown-' + id + '"></ul>');
            var i = 0, linkTarget = '';
            for(i; i<data.length; i++) {
            	if (typeof data[i].divider !== 'undefined') {
    				$menu.append('<li class="divider"></li>');
    			} else if (typeof data[i].header !== 'undefined') {
    				$menu.append('<li class="nav-header">' + data[i].header + '</li>');
    			} else {
    				if (typeof data[i].href == 'undefined') {
    					data[i].href = '#';
    				}
    				if (typeof data[i].target !== 'undefined') {
    					linkTarget = ' target="'+data[i].target+'"';
    				}
    				if (typeof data[i].subMenu !== 'undefined') {
    					$sub = ('<li class="dropdown-submenu"><a tabindex="-1" href="' + data[i].href + '">' + data[i].text + '</a></li>');
    				} else {
    					$sub = $('<li><a tabindex="-1" href="' + data[i].href + '"'+linkTarget+'>' + data[i].text + '</a></li>');
    				}
    				if (typeof data[i].action !== 'undefined') {
    					var actiond = new Date(),
    						actionID = 'event-' + actiond.getTime() * Math.floor(Math.random()*100000),
    						eventAction = data[i].action;
    					$sub.find('a').attr('id', actionID);
    					$('#' + actionID).addClass('context-event');
    					$(document).on('click', '#' + actionID, eventAction);
    				}
    				$menu.append($sub);
    				if (typeof data[i].subMenu != 'undefined') {
    					var subMenuData = buildMenu(data[i].subMenu, id, true);
    					$menu.find('li:last').append(subMenuData);
    				}
    			}
    			if (typeof options.filter == 'function') {
    				options.filter($menu.find('li:last'));
    			}
    		}
    		return $menu;
    	}
    
    	function addContext(selector, data) {
    			var d = new Date(),
    			id = d.getTime(),
    			$menu = buildMenu(data, id);
    			
    		$('body').append($menu);
    		
    		
    		$(document).on('contextmenu', selector, function (e) {
    			e.preventDefault();
    			e.stopPropagation();
    			that=this;
    			$('.dropdown-context:not(.dropdown-context-sub)').hide();
    			
    			$dd = $('#dropdown-' + id);
    			if (typeof options.above == 'boolean' && options.above) {
    				$dd.addClass('dropdown-context-up').css({
    					top: e.pageY - 20 - $('#dropdown-' + id).height(),
    					left: e.pageX - 13
    				}).fadeIn(options.fadeSpeed);
    			} else if (typeof options.above == 'string' && options.above == 'auto') {
    				$dd.removeClass('dropdown-context-up');
    				var autoH = $dd.height() + 12;
    				if ((e.pageY + autoH) > $('html').height()) {
    					$dd.addClass('dropdown-context-up').css({
    						top: e.pageY - 20 - autoH,
    						left: e.pageX - 13
    					}).fadeIn(options.fadeSpeed);
    				} else {
    					$dd.css({
    						top: e.pageY + 10,
    						left: e.pageX - 13
    					}).fadeIn(options.fadeSpeed);
    				}
    			}
    		});
    	}
    	
    	function destroyContext(selector) {
    		$(document).off('contextmenu', selector).off('click', '.context-event');
    	}
    	
    	return {
    		init: initialize,
    		settings: updateOptions,
    		attach: addContext,
    		destroy: destroyContext
    	};
    })();

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Bonjour,

    en utilisant ton code, j'ai ce message d'erreur au chargement de la page
    TypeError: that is null

    {text: 'Lien 1', href: 'http://MaPage.html?MonParam='+that.id},
    Encore merci pour le coup de main.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    Voila, j'ai enfin trouvé comment récupérer mon id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    context.attach('.PositionSPP ', [		
    	 {header: 'Mon menu'},
             {
                    text: 'Lien 1',    action: function(e)
    		{
    			var monID=e.view.that.id;
                             ....
    Encore merci à Danielhagnoul et SpaceFrog

  17. #17
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bravo, c'est Noël avant l'heure !

    Je pense que si l'on avait disposer de tous les éléments (HTML, CSS, JS), pas seulement le code de ce "mauvais" plugin (documentation et démonstration lacunaire), on aurait pu voir dans quel contexte est utilisé context.attach( ... ) dans votre code et peut-être trouvé une réponse valable beaucoup plus vite sans devoir écrire une infâme rustine.

    Au vu de "e.view", je pense à un "e.target.id" pour un "event" classique. En ajoutant "console.log( e, e.view );" dans le code, on peut examiner la composition de cet "e" et de cet "e.view" dans la console du navigateur (touche F12).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 54
    Par défaut
    C'est justement grâce à console.log que j'ai trouvé la solution à mon probleme.

    e.target.id contient l'id du lien de mon menu et pas l'id de l’élément sur lequel j'ai fait mon clic droit.

    Encore merci pour l'astuce du that.

  19. #19
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par crazyyann Voir le message
    C'est justement grâce à console.log que j'ai trouvé la solution à mon probleme. [...]
    Cela mérite un bravo et deux points d'approbation pour la persévérance et la méthode.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  2. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. Réponses: 11
    Dernier message: 23/07/2002, 14h33
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo