Передача значений к onclick [дубликат]

Существует несколько различного 'молозива':

  • <%@ - директива
  • <%$ страницы - доступ ресурса
  • <%= - явный вывод к странице
  • <%# - привязке данных
  • <%-- - серверный блок комментария

, Также новый в ASP.Net 4:

  • <%: - выписывает к странице, но с HTML закодировал

Также новый в ASP.Net 4.5:

  • <%#: - HTML закодировал привязку данных
7
задан Anurag 21 May 2010 в 08:03
поделиться

3 ответа

Значение i изменяется с каждой итерацией цикла. Вам нужно замыкание для захвата значения i :

(function(i) {
    my_element.onclick = function () {my_function (i)};
}(i))
8
ответ дан 7 December 2019 в 03:18
поделиться

Если вы пишете функцию, которая строит вам функцию-обработчик, вы можете использовать новую область видимости, которая дает вам уверенность в том, что вы получите желаемое число. Например:

function BuildHandler (i) { return function () { alert(i); };

for (i= 1; i < 100; i++) {
    var my_element = document.createElement ("td");
    row.appendChild (my_element);
    my_element.onclick = BuildHandler(i);
}
1
ответ дан 7 December 2019 в 03:18
поделиться

на вашем месте я буду использовать JQuery (или прототип, или любые доступные js-фреймворки)

для каждого элемента, который вам следует добавьте атрибуты, например myid, чтобы, когда вы сделали это, вы могли получить его.

for(i=1; i ++ ; i<100){
   var myelement = "<td myid='something"+i+"' class='myTD'></td>" ;
   row.append(myelement);
}

.... 

$(document).ready(function(){
  $('.myTD').click(function(){
     var id = $(this).attr('myid');
     my_function(id);
  });

});

Я проделал этот трюк в своем веб-приложении:)

0
ответ дан 7 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: