Есть несколько вещей, которые я должен был сделать, чтобы заставить это работать. Во-первых, при динамической генерации HTML я присвоил уникальный класс всем элементам, которые хотел сделать интерактивными (и имитировать поведение при клике). После того, как отображение было сгенерировано, я вытащил все промежутки на странице как таковые:
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, а затем декодировать в функции. Например, если бы я добавил 'data: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.
person
Daniel Bachhuber
schedule
12.10.2009