2012-04-30 5 views
6

Je le code suivantcomment obtenir l'ID pour ouvrir la boîte de dialogue

<td><a href="#" id="dialog_link-19" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-25" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-33" class="ui-state-default ui-corner-all">Click here</a></td> 
<td><a href="#" id="dialog_link-556" class="ui-state-default ui-corner-all">Click here</a></td> 

#dialog_link est généré dynamiquement.

dans mon js J'ai besoin de savoir sur lequel j'ai cliqué.

c'est mon js

$('#dialog').dialog({ 
      autoOpen: false, 
      width: 600, 
      buttons: { 
       "Ok": function() { 
        $(this).dialog("close"); 
       }, 
       "Cancel": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     // Dialog Link 
     $('#dialog_link').click(function(){ 
      $('#dialog').dialog('open'); 
      $.ajax({ 
        url: "teams/pp", 
        type: "POST", 
        data: 
        success: function(data){ 

        console.log(data); 

        } 

       }); 

      return false; 
     }); 
+1

Je suis confus. Où dans ce code avez-vous besoin de savoir quelle boîte a été cliquée? Et si l'ID est généré automatiquement, does ('#dialog_link'). Cliquez sur faire quelque chose? Il semble que cela ne mènerait nulle part – Ryan

Répondre

4

Vous pouvez obtenir l'identifiant de celui qui a été cliqué liek ceci:

$('a[id*=dialog_link]').click(function(){ 
    var id = $(this).attr('id'); 

    console.log(id); 
}); 
9

Utilisation id^ au lieu de id*, id^ utilisé pour indiquer que le id commençant avec le texte donné et id* correspond si le texte donné est disponible dans le id, partout même enfin comme id1-dialog_link:

$("td a[id^='dialog_link']").click(function(){ 
    var id = $(this).prop('id'); 
    console.log(id); 
}); 

Ici a[id^='dialog_link'] correspondront dialog_link-19 mais pas id1-dialog_link.

+0

est-ce que cela devient plus upvotes que le mien en raison de l'utilisation de prop? Je pense que les gens se méprennent lorsque l'accessoire doit être utilisé. Directement à partir de la page JQuery prop: Par exemple, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked et defaultSelected doivent être récupérés et définis avec la méthode .prop(). Avant jQuery 1.6, ces propriétés étaient récupérables avec la méthode .attr(), mais cela ne faisait pas partie de attr. Ceux-ci n'ont pas d'attributs correspondants et ne sont que des propriétés. – Evan

+0

Je pense qu'il y a une autre différence dans nos réponses et sa chaîne de sélecteur, vous avez utilisé $ ('a [id * = dialog_link]') 'qui signifie n'importe quel identifiant contenant ce mot' dialog_link' n'importe où dans l'ID et le ('a [id^= dialog_link]') 'ce qui signifie uniquement les identifiants commençant par le mot' dialog_link'. –

2

Cela devrait retourner le numéro du lien cliqué:

$('a[id*=dialog_link]').click(function() { 
    var id = $(this).attr('id').replace('dialog_link-',''); 
    alert(id); 
}); 

Demo

J'ai utilisé la fonction .replace() pour supprimer le texte

Questions connexes