我有一个“actions_image”类的图像,当点击时显示一个菜单。带隐藏菜单的图像会在同一页面上出现多次。 我有2个原因与下面的代码问题:显示隐藏点击问题
1 - JavaScript代码,第一行是要确保,如果有已经是一个菜单打开,这将显示的新菜单前关闭。但是,当添加这条线时,带有切换命令的第二行不再切换。它只在点击时显示div,但在再次点击时不会隐藏它。所有其他的行动完美地工作,因为在div隐藏时,除了图像显示它被点击的任何东西
2 - IE 7抛出一个JavaScript的第二行错误,因为使用:悬停并且根本不会显示菜单(grrr ...!)
任何人都可以帮忙吗?
Javascript代码:
section_actions_menu: function(event){
$(".actions_image").next().hide();
$(".actions_image:hover").next().toggle();
$("body").click(function(e){
if(e.target.className !== "actions_image")
{
$(".actions_image").next().hide();
}
});
}
HTML代码:
<img src="/media/images/spacer.gif" width="31" height="18" alt="Section Actions Menu" title="Section Actions Menu" class="actions_image" onclick="section_actions_menu(event);"/>
<div class="toggle">
<ul>
<li><a title="Add">Add</a></li>
<li><a title="Edit">Edit</a></li>
<li><a title="Remove">Remove</a></li>
</ul>
</div>
任何帮助将非常感激。
你能解释效率增益吗?一眼看上去它会添加大量的事件处理程序,而不仅仅是一个,这听起来不像是一个比较测试中的效率增益超过一个事件处理程序。 – Chris 2010-06-18 12:06:06
不幸的是,这是行不通的。虽然这段代码没有被破解,但IE 7并不接受我更感兴趣的代码。 – aligreene 2010-06-18 12:09:00
@chris - 是的,我的错误,它仍然不是很有效的手动委托后,每一个事件必须泡沫一直到dom? – Haroldo 2010-06-18 12:20:19