为了让它发挥作用,我必须做几件事。首先,在动态生成 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 对它们进行编码,然后在函数中对其进行解码。例如,如果我添加了 '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);
}
多田。在 Adobe AIR 中重新启用 onclick 事件的一种骇人听闻的方式。