我在页面上有一大堆“产品”类的元素。我想附加一个事件处理程序给每一个,所以在悬停时显示一个工具提示。 下面的代码在Chrome,Firefox,Safari和IE8 +做工精细,但不是IE7:IE7在事件处理函数中丢失参数 - prototype.js
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中,我第一次将鼠标悬停在每一个元素,它工作正常。但是,第二次将鼠标悬停在元素上时,“内容”变量为空。如果我用简单的警报(content.innerHTML)替换showTooltip()函数,它会首次警告正确的HTML,并且每次警报都是空的。
我也尝试将内容存储为对象,并使用bindAsEventListener,但我得到了相同的结果。
任何人有什么想法是什么导致内容不坚持在IE7?
感谢
好想法。我应该想出来,但有时你只需要一个外部意见:) – 2011-04-11 16:53:31