<a> in <div> in <li> - when I click the list item, the link opens</li></div></a>

时间:2011-07-28 12:09:53

标签: javascript html internet-explorer-7

我使用嵌套的UL构建了一个可扩展的树。这是我所拥有的简化代码:

<li>
    <div><a href="somepage">Link</a></div>
    <ul>...</ul>
</li>

<li>的{​​{1}}为20px,背景图片为加号或减号。我在padding-left上有一个点击事件,用于切换一个类并将当前状态保存在cookie中。当我点击它时,似乎点击了<li> - 它得到一个虚线轮廓并且页面位置发生了变化。但是,也会执行<a>单击事件 - 树会展开。我想只执行<li>点击事件。

它在IE8 +,Chrome和Firefox中运行良好,而不是在IE7中。如果它有任何意义:我使用jQuery将click事件绑定到<li>


编辑:正如T.J.的评论中所建议的那样。克劳德,我添加了一个jsfiddle示例here。编辑2:更改了jQuery选择器。但是仍然有相同的行为。


UPDATE :在IE7模式下它实际上是IE9,会有所作为吗?

2 个答案:

答案 0 :(得分:0)

你的例子是错的:在ul中不允许Div。

但是,您可以尝试阻止链接的点击事件。

$(function() {
    $('#tree div').click(function() {this.style.background = '#00FF00'; });
    $('#tree a').click(function(event) {event.preventDefault(); });
});

答案 1 :(得分:0)

似乎解决方案很简单:使用实际的IE7,而不是IE9的IE7模式。

很抱歉打扰你,伙计们!