2014-04-22 9 views
5

Ho uno scenario in cui ho bisogno di passare l'ID generato a caso alla funzione javascript, ma la funzione javascript non lo riconosce. Iam usa la griglia potenziata del dojo. Segue il codice:invia un valore generato a caso alla funzione javascript onclick

function(value, rowIndex) { 
      var Id = this.grid.getItem(rowIndex).ID; 
      alert("ID+ " + Id);//retriving the id value correctly 
      return "<img src=../img/smiley.jpg width=\"20\" height=\"20\" onClick=\"showData(\''+Id +'\')\" class=\"display\">" ; 
     }; 

<script> 
function showData(id){ 
alert(id);//unable to get the id here.. 
} 
</script> 

Grazie in anticipo.

+0

chiamata funzione 'showDate (Id)' dopo l'avviso di lavoro. Se vuoi usare 'Id' senza chiamare la funzione devi mettere' var Id' al di fuori della funzione. Quando stai provando ad avvisarlo nella funzione 'showData' sei in un altro ambito. Javascript è anche case sensitive quindi devi usare 'Id' invece di' id'. – GuyT

+0

@GuyY non posso chiamare la funzione showDate (Id) dopo l'avviso come, voglio avere un evento onClick, quando clicco sull'immagine che la funzione dovrebbe essere chiamata passando quell'Id alla funzione javascript come loro devo elaborare di più con quello Id. È il loro modo di esibirsi. Grazie. – participantjava

+0

Non capisco cosa intendi esattamente. Ma hai già visto 'on' con' lang.hitch'? Lo uso la maggior parte del tempo quando ho problemi di scope in Dojo .. – GuyT

risposta

3

Le citazioni nell'ascoltatore sono incasinate. Io tendo ad usare le virgolette per HTML e unico per lo script, e nido a seconda dei casi:

return '<img src="../img/smiley.jpg" width="20" height="20" onclick="showData(\'' + Id + '\');" class="display">'; 

Inoltre, preferisco di gran lunga usare lettere minuscole per tutti i nomi degli attributi e di citare tutti i valori, non solo quelli che strettamente necessario esso.

Infine, i nomi delle variabili che iniziano con una lettera maiuscola sono, per convenzione, riservati ai costruttori, quindi è necessario utilizzare id non Id.

+0

Grazie per il suggerimento @RobG – participantjava

Problemi correlati