У меня есть куча элементов на странице с классом «product». Я хочу прикрепить обработчик событий к каждому из них, поэтому при наведении указывается всплывающая подсказка.
Следующий код работает нормально в Chrome, Firefox, Safari и IE8 +, но не в IE7:
function init() {
$$('.product').each(function(elm) {
var id = elm.id;
var name = new Element('div', {'class': 'title'}).update(products[id].name);
var desc = new Element('div').update(products[id].desc);
var content = new Element('div');
content.appendChild(name);
content.appendChild(desc);
elm.observe('click', function() {showTooltip(content)});
elm.observe('mouseover', function() {showTooltip(content)});
elm.observe('mouseout', function() {hideTooltip()});
});
}
document.observe('dom:loaded', init);
В IE7 при первом наведении курсора на каждый элемент он работает нормально. Но во второй раз при наведении курсора на элемент переменная содержимого пуста. Если я заменил свою функцию showTooltip () на простое оповещение (content.innerHTML), оно в первый раз выдаст предупреждение о правильном HTML, а оповещение будет пустым каждый раз после.
Я также пытался сохранить контент как объект и использовать bindAsEventListener, но получаю тот же результат.
У кого-нибудь есть мысли о том, что заставляет контент не сохраняться в IE7?
Спасибо