0 votes

Comment obtenir l'ID de la ligne Jquery sur un simple clic ?

 var value;
    $("#Grid1").click(function(e) {
            var row = jQuery(e.target).parent();
            value= row.attr("id");
        });
        var onrowclick = function() {
        ("#Grid1").click($("#showgrid").load('/Names/Friends/satish/' +  value));
    };

J'essaie d'envoyer la valeur sur l'URL... Lorsque je procède de la sorte, je n'obtiens pas de résultat.... Est-ce que je fais cela correctement ?

Le problème vient-il du fait que je gère deux fois l'événement click sur la même grille ?

2voto

user113716 Points 143363

Difficile à dire sans voir le HTML, mais je pense que vous essayez de faire quelque chose comme ça :

// Initialize variables outside of the handler
var row;
var value;

$("#Grid1").click(function(e) {
    // Assign values to variables when event handler fires
    row = jQuery(e.target).closest('tr');
    value= row.attr("id");
    $("#showgrid").load('/Names/Friends/satish/' +  value);
});

// Now you can access the local variables

function someFunction() {
    alert(value);
    alert(row.get(0));
}

J'ai changé parent() a closest() car je ne connais pas votre structure HTML.


EDITAR:

Par souci de clarté, je suppose que #Grid1 est une sorte de conteneur ( table peut-être), et vous cliquez sur quelque chose dans le contenu d'un tr . Et #showgrid est un composant distinct, extérieur au conteneur, qui affiche des informations supplémentaires.

EDITAR:

Je suppose, d'après votre commentaire, que vous avez besoin d'accéder à l'élément et/ou à l'ID de la ligne depuis l'extérieur du gestionnaire. J'ai mis à jour l'exemple pour refléter la façon dont cela peut être fait. Faites-moi savoir si ce n'est pas ce que vous vouliez dire.

1voto

aSeptik Points 19103

MISE À JOUR : en réponse à votre commentaire :

si vous voulez assigner une variable en dehors de l'événement de clic, vous pouvez le faire :

$(function () {
  // declare the variable.. this one will hold the parent id
  var my_value;
    // now the click event...
    $("#Grid1").click(function(e) {
             e.preventDefault();
             // my_value now is setted outside...
             my_value = $(this).parent().attr("id");
         });

  // now for the example we observe the click event you can use it in other way!

    $('#Grid1').bind( 'click' , function() { 
      // now as you can see we are using my_value that come from outside!
     $('#showgrid').load('/Names/Friends/satish/' + my_value );

    });

});

NOTE SUPPLÉMENTAIRE

Maintenant, je ne sais pas si le #Grid1 se trouve à l'intérieur du #showgrid mais si c'est le cas, vous devez utiliser l'option live() méthode !

comme ceci :

$("#Grid1").live( 'click' , function(e) {
// do something here as above...!
});

en supposant :

<div id="this_is_parent_of_Grid1">
<a id="Grid1" href="">click</a>
</div>

OU si vous utilisez table

<table><tr>
<td id="this_is_parent_of_Grid1"><a id="Grid1">click</a></td>
</tr></table>

0voto

GerManson Points 3238

Que devez-vous faire ?

var value;

$("#rowid").click(function() {
    value = $(this).value();
});

ou vous pouvez essayer quelque chose comme ceci :

var value;

$("#rowid").click(function() {
    value = $(this).value();
    $("#showgrid").html( $.load("/Names/Friends/Satish/" + value) );
});

0voto

Pourquoi ne pas utiliser les éléments suivants ?

$("#Grid1").click(function(e) {
         var value= $(e.target).parent().attr("id");
         $("#Grid1").load('/Names/Friends/satish/' +  value);
     });
};

Ce code est encore fragile, mais il fait probablement plus que ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X