YAHOO.util.Event.addListener
предпочтительно принимает элемент DOM в качестве первого аргумента, например:
function afterLoad()
{
var elements = YAHOO.util.Dom.getElementsByClassName('action-link');
for (var i = 0; i < elements.length; i++)
{
YAHOO.util.Event.addListener(elements[i], "click", fnCallback);
}
}
YAHOO.util.Event.onDOMReady(afterLoad);
Также может быть передана строка идентификатора, но это не требуется в этом случае, так как у вас уже есть список элементов DOM.
Кроме того, вы не должны повторять массив с for x in yy
, поскольку он может легко включать нечисловые индексы, такие как пользовательские свойства.
Или вы можете написать это так, используя анонимную функцию:
YAHOO.util.Event.onDOMReady(function() {
var elements = YAHOO.util.Dom.getElementsByClassName('action-link');
for (var i = 0; i < elements.length; i++) {
YAHOO.util.Event.addListener(elements[i], "click", fnCallback);
}
});
К вашему сведению, YAHOO.util.Event.onContentReady("Share", afterLoad)
будет работать, только если "Share"
является идентификатором элемента на странице И, элементы, с которыми вы хотите работать в afterLoad, находятся перед этим элементом на странице или дочерними элементами этого элемента на странице. , Поскольку я не был уверен, может ли это быть частью проблемы, я переключился на onDOMReady()
, что проще.