2014-04-27 4 views
0

Есть ли способ обрабатывать элементы, сделанные динамически при загрузке страницы?Ручка с динамически создаваемыми элементами в Javascript

например, у меня есть код ниже.

function makeAFrame(index) 
{ 
    var padding=document.createElement('p'); 
    var frameDiv=document.createElement('div'); 
    frameDiv.id="frame"; 
    frameDiv.className="frame"; 

    var placeButton=document.createElement('input'); 
    placeButton.id="bButton"+index; 
    placeButton.className="bButton"; 
    placeButton.value="aaa"; 
    placeButton.type="button"; 

    var buyButton=document.createElement('input'); 
    buyButton.id="aButton"+index; 
    buyButton.className="aButton"; 
    buyButton.value="Buy It Now"; 
    buyButton.type="button"; 

    var table=document.createElement('table'); 
    table.setAttribute('cellpadding','3'); 
    table.setAttribute('width','100%'); 

    var col1=["a", "b", "c","d","e:", "f"]; 

    var row; 
    var text; 
    var cell; 
    var i=0; 

    for(i=0;i<6;i++) 
    { 
     row = table.insertRow(i); 

     text = document.createTextNode(col1[i]); 
     cell = row.insertCell(0); 
     cell.setAttribute('align','right'); 
     cell.setAttribute('width','30%'); 
     cell.appendChild(text); 

     text = document.createTextNode(hey[index][i]); 
     cell = row.insertCell(1); 
     cell.setAttribute('align','left'); 
     cell.appendChild(text); 
    } 

    for(i=6;i<8;i++) 
    { 
     row = table.insertRow(i); 

     text = document.createTextNode(""); 
     cell = row.insertCell(0); 
     cell.setAttribute('align','right'); 
     cell.setAttribute('width','30%'); 
     cell.appendChild(text); 

     if(i==7) 
     { 
      cell = row.insertCell(1); 
      cell.setAttribute('align','left'); 
      cell.appendChild(placeButton); 
      cell.appendChild(buyButton); 
      break; 
     } 
     else if(i==6) 
     text = document.createTextNode(remaining); 
     cell = row.insertCell(1); 
     cell.setAttribute('align','left'); 
     cell.appendChild(text); 
    } 

    var body=document.getElementById('body'); 
    frameDiv.appendChild(table); 
    body.appendChild(frameDiv); 
    body.appendChild(padding); 
} 

Как только функция была запущена, это означает, что после того, как все элементы показаны на странице. То, что я хотел бы сделать, это когда я нажимаю «aButton0» (aButton + index), появляется окно ввода. Я делаю все коды кнопок с индексом, чтобы они были доступны, но я не знаю, как получить доступ после того, как они будут показаны на странице.

+0

любая js скрипка с кодом – chandu

+0

Что такое массив 'hey' в вашем коде? Можете ли вы предоставить * рабочий пример *, поэтому нам не нужно использовать туман? Измените это: http://jsbin.com/toyig/1/edit –

+0

Я редактировал код там. Массив не имеет значения. Вы можете заменить его на любое строковое значение. – user3503758

ответ

1

Почему бы вам просто добавить обработчик OnClick к кнопке, когда вы создаете его, просто добавьте

placeButton.setAttribute("onclick", "showPopUp();"); 

Затем вы можете реагировать на вашу конкретную кнопку внутри в функции showPopUp.

+0

Я просто попытался, но ваш оператор запускается каждый раз, когда элемент создается. Я хочу обработать их после их создания. – user3503758

+0

, когда вы хотите добавить обработчика тогда, и что тогда проблема? –

+0

Когда страница загружается, она будет создавать таблицы и кнопки в каждой таблице. когда все компоненты отображаются на странице, я хочу нажать кнопку на странице и хочу, чтобы она отображала поле ввода, поэтому я могу напечатать. – user3503758

Смежные вопросы