Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 内置嵌套div的可单击div_Jquery_Css_Html_Anchor_Block - Fatal编程技术网

Jquery 内置嵌套div的可单击div

Jquery 内置嵌套div的可单击div,jquery,css,html,anchor,block,Jquery,Css,Html,Anchor,Block,我想做一个可点击的div,里面嵌套了更多的div。据我所知,如果设置锚定标记display:block的样式,它将充当块(div),您可以在其中嵌套希望单击的div 然而,我不相信你可以继续嵌套更多的div超过这个。。。如果是这样,为什么 还有,解决这个问题的最佳/最简单的解决方案是什么。理想情况下,它应该是所有CSS/HTML,但是如果CSS/HTML真的不可能,jQuery解决方案也可以 无论如何。。。例如: 只要锚点的样式为display:block 在这里输入代码 <a>

我想做一个可点击的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>

这不会

在这里输入代码

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


感谢您的帮助。谢谢

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

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

blablabla...

});

这里是somme doc:

确保您的第二个变体可以工作-您可以更深入。事实上,嵌套的深度没有限制。(或者可能有,但与现实生活中的案例无关)

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


或者,您可以将
-s与jQuery一起使用,并将单击侦听器附加到包装器-

如果您正在使用
HTML5 Doctype
,则使用锚定标记包装div元素是有效的,假设您没有使用
HTML5 Doctype
,您也可以尝试以下方法:

div#first {
  cursor: pointer;
}

$('#first').click(function() {
    window.location = 'http://www.example.com'
})

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

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

您可以将任何级别的东西嵌套在锚中(当然,假设HTML5)。你的第二个例子有效。为什么你认为不会?是的?我刚读到它不会。我不知道。。。我想我正在读一些过时的答案。另外,对于HTML5,我假设我仍然需要将'display:block'分配给锚定标记以使其工作,是吗?不,不需要执行“display:block;”。如果锚点内有块级元素,它将正常显示为块。看到这把小提琴了吗?那么答案是这样的:你是不是已经过时了?我猜HTML5在某些方面有所改进,因为这里的答案确实表明它们是HTML4。令人惊叹的。谢谢哦,对不起,我没有真正理解你的问题:事实上,你正在寻找如何使div可点击…所以你可以用HTML5来做,但它在语义上是不正确的。语义错误的后果是什么?难道做一个积木不就和一个div一样吗?这将如何改变事物,使其在语义上更好?我不是这里的专家,因此非常感谢任何/所有有助于理解的帮助。谢谢当其他开发人员认真研究您的代码时,语义错误将导致巨大的尴尬:)-