2012-04-30 14 views
6

ho il codicecome ottenere l'ID per aprire la finestra di dialogo

<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 seguente viene generata dinamicamente.

nel mio js, ​​ho bisogno di sapere quale clic è stato premuto.

questo è il mio 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

Sono confuso. Dove in questo codice hai bisogno di sapere quale casella è stata cliccata? E se l'ID viene generato automaticamente, fa ('#dialog_link'). Fare clic su fare qualcosa? Sembra che non andrebbe da nessuna parte – Ryan

risposta

4

È possibile ottenere l'id di quello che è stato fatto clic liek questo:

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

    console.log(id); 
}); 
9

Uso id^ invece di id*, id^ utilizzato per indicare che il id inizio con il testo specificato e le corrispondenze id* se il testo specificato è disponibile nello id, ovunque persino alla fine come id1-dialog_link:

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

Qui a[id^='dialog_link'] corrisponderà dialog_link-19 ma non id1-dialog_link.

+0

questo sta ottenendo più uptotes rispetto al mio a causa dell'uso di prop? Penso che le persone fraintendano quando si dovrebbe usare il sostegno. Direttamente dalla pagina prop() di JQuery: Ad esempio, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked e defaultSelected devono essere recuperati e impostati con il metodo .prop(). Prima di jQuery 1.6, queste proprietà erano recuperabili con il metodo .attr(), ma questo non rientrava nell'ambito di attr. Questi non hanno attributi corrispondenti e sono solo proprietà. – Evan

+0

Penso che ci sia un'altra differenza nelle nostre risposte ed è una stringa di selettore, hai usato '$ ('a [id * = dialog_link]') 'che significa qualsiasi id contenente questa parola' dialog_link' in qualsiasi parte all'interno dell'ID e il mio è '$ ('a [id^= dialog_link]') 'questo significa solo id che iniziano con la parola' dialog_link'. –

2

Ciò dovrebbe restituire il numero del collegamento cliccato:

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

Demo

Ho usato la funzione .replace() per rimuovere il testo

Problemi correlati