Есть несколько вещей, которые я должен был сделать, чтобы заставить это работать. Во-первых, при динамическом создании HTML я назначил уникальный класс всем элементам, которые я хотел сделать интерактивными (и имитировать поведение onclick). После того, как дисплей был создан, я вытащил все пролеты на странице, как например:
var span = document.getElementsByTagName('span');
, а затем итерация через них, добавив слушатель событий для тех, где мне нужно интерактивное действие:
for(var i=0; i<span.length; i++){
if (span[i].className == "firstUniqueClass") {
span[i].addEventListener("click", firstUniqueFunction, false);
} else if (span[i].className == "secondUniqueClass") {
span[i].addEventListener("click", secondUniqueFunction, false);
}
}
Короче говоря, это дает мне возможность назначать функцию всякий раз, когда на одном из этих промежутков есть событие щелчка. К сожалению, я также хотел передать переменные моим функциям. Я закончил тем, что мне нужно было закодировать элементы в элементе, в псевдо-RDF, а затем декодировать его в функции. Например, если я добавил 'данных: URL = "http://www.google.com/"', я бы регенерировать его как таковой:
function copyLink(event) {
var startPos = event.currentTarget.outerHTML.indexOf('data:url="') + 10;
var endPos = event.currentTarget.outerHTML.indexOf('"', startPos + 2);
var link = event.currentTarget.outerHTML.slice(startPos, endPos);
}
Тада. Хакерный способ повторного включения события onclick в Adobe AIR.
Я, наконец, понял это и напишу полный отчет завтра. В основном проблема заключается в том, что Adobe AIR выделяет динамически генерируемые события on-events и обратное проектирование, это беспорядок: http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7f0e.html# WS5b3ccc516d4fbf351e63e3d118666ade46-7ef8 –