0

我正在寻找一个可点击的 div,其中嵌套了更多的 div。据我了解,如果您设置锚标记 display:block 的样式,它将充当块 (div),您可以在其中嵌套您想要可点击的 div。

但是,我不相信你可以继续嵌套更多的 div ......如果是这样的话,为什么会这样?

而且,解决这个问题的最佳/最简单的解决方案是什么。理想情况下是所有 CSS/HTML,但如果 CSS/HTML 真的不可能,jQuery 解决方案也可以。

无论如何...例如:

只要锚的样式为 display:block...,这将起作用(是吗?)

在这里输入代码

<a>
     <div id='first'>
     </div>
</a>

这不会...

在这里输入代码

<a>
     <div id='first'>
          <div id='inside first'>
          </div>
          <div id='inside first 2'>
          </div>
     </div>
</a>

任何和所有的帮助表示赞赏。谢谢!

4

4 回答 4

1

当然你的第二个变种会起作用 - http://jsfiddle.net/W5jG8/ 你可以更深入。事实上,嵌套的深度是没有限制的。(或者也许有,但与现实生活中的案例无关)

但是在 HTML5 之前将块级元素嵌套到最初的内联元素中在语义上是不正确的。一种解决方案是将所有<div>-s替换为<span>-s 并使其阻塞。

或者您可以将<div>-s 与 jQuery 一起使用并将点击侦听器附加到包装器 - http://jsfiddle.net/W5jG8/

于 2012-06-28T23:24:27.430 回答
1

如果你正在使用HTML5 Doctype它是有效的使用锚标签来包装 div 元素,假设你不使用HTML5 Doctype你也可以试试这个:

div#first {
  cursor: pointer;
}

$('#first').click(function() {
    window.location = 'http://www.example.com'
})
于 2012-06-28T23:25:18.453 回答
0

最简单的方法是使用 jquery,为要使其可点击的 div 指定一个 Id,如下所示:

$('#div_Id').click(function(){

blablabla...

});

这是一些文档: http ://api.jquery.com/click/

于 2012-06-28T23:19:48.033 回答
0

将 div 标签放在锚标签内不是有效的 html,因此您不应该这样做。在您的情况下,最简单的方法是使用一点 JavaScript 并在您的父 div 上定义一个简单的 onclick 事件,例如:

 <div id='first' onclick="javascript:MyRedirectFunction()">
      <div id='inside first'>
      </div>
      <div id='inside first 2'>
      </div>
 </div>

那么如果你想让用户明白这个 div 是可点击的,你可以使用 CSS 给它一个类似锚点的行为,例如:

div#first{ cursor: pointer; }
div#first:hover{ background-color:#CCCCCC;}
于 2012-06-28T23:58:47.483 回答