2014-04-22 11 views
5

Mam scenariusz, w którym muszę przekazać losowo wygenerowany identyfikator do funkcji javascript, ale funkcja javascript nie rozpoznaje. Używam ulepszonej siatki dojo. Poniżej znajduje się kod:wysyła losową wygenerowaną wartość do funkcji 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> 

Z góry dziękuję.

+0

wywołanie funkcji 'showDate (Id)' po uruchomieniu alarmu. Jeśli chcesz użyć 'Id' bez wywoływania funkcji, musisz ustawić' var Id' poza funkcją. Kiedy próbujesz ostrzec go w funkcji 'showData', jesteś w innym zasięgu. Javascript również rozróżnia małe i wielkie litery, więc musisz użyć "Id" zamiast "id". – GuyT

+0

@GuyY Nie mogę wywołać funkcji showDate (Id) po alarmie, ponieważ chcę mieć zdarzenie onClick, gdy klikam obraz, którego funkcja powinna zostać wywołana, przekazując identyfikator do funkcji javascript, ponieważ muszę przetworzyć więcej z tą funkcją ID. Jest ich sposób na wykonanie. Dzięki. – participantjava

+0

Nie rozumiem, co dokładnie masz na myśli. Ale czy już spojrzałeś na 'on' z' lang.hitch'? Używam tego przez większość czasu, kiedy mam problemy z zasięgiem w Dojo. – GuyT

Odpowiedz

3

Cytaty w słuchaczu są pomieszane. I mają tendencję do używania cudzysłowów dla HTML i pojedynczy dla skryptu, a gniazdo odpowiednio:

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

Również wolę używać małych liter dla wszystkich nazw atrybutów i cytować wszystkie wartości, nie tylko te, które bezwzględnie wymagają to.

Wreszcie nazwy zmiennych rozpoczynające się od dużej litery są, zgodnie z konwencją, zarezerwowane dla konstruktorów, dlatego należy używać id, a nie Id.

+0

Dzięki za sugestię @RobG – participantjava

Powiązane problemy