2013-09-10 3 views
0

Я пытаюсь установить свойство onClick динамически генерируемого div в цикле, но приведенный ниже код не работает за пределами генерации div. Может кто-нибудь, пожалуйста, помогите мне?Динамическое определение свойства onClick

<script type="text/javascript"> 
function gengrid() 
     { 
      var i=0; 
      var num_stud=8; 
      var newdiv; 
      var divIdName; 
      var maindiv; 
      for(i=1;i<=num_stud;i++) 
      { 
      newdiv = document.createElement('div'); 
      divIdName = '50'+i; 
      newdiv.setAttribute('id',divIdName); 
      newdiv.onClick= function(){addit(i);}; 
      newdiv.innerHTML = '<img src=50'+i+'.jpg alt="a"></img>'; 
      maindiv=document.getElementById('main'); 
      maindiv.appendChild(newdiv); 
      } 
     } 
    gengrid(); 
    function addit(picno) 
     { 
      alert(picno+''); 
     } 
    </script> 
+0

Try '' newdiv.onclick' с простым c'. – Kaf

+0

Маленький корпус c работает, спасибо –

+0

теперь он всегда предупреждает вас '9', правильно? – Cherniv

ответ

1

Метод onclick должен иметь строчный регистр c.

Смотрите эту скрипку: http://jsfiddle.net/MTpUV/

<script type="text/javascript"> 
function gengrid() 
     { 
      var i=0; 
      var num_stud=8; 
      var newdiv; 
      var divIdName; 
      var maindiv; 
      for(i=1;i<=num_stud;i++) 
      { 
      newdiv = document.createElement('div'); 
      divIdName = '50'+i; 
      newdiv.setAttribute('id',divIdName); 
      newdiv.onclick= function(){addit(i);}; 
      newdiv.innerHTML = '<img src=50'+i+'.jpg alt="a"></img>'; 
      maindiv=document.getElementById('main'); 
      maindiv.appendChild(newdiv); 
      } 
     } 
    gengrid(); 
    function addit(picno) 
     { 
      alert(picno+''); 
     } 
    </script> 
Смежные вопросы