DIV属于元素,你怎么知道?

时间:2011-10-25 23:43:22

标签: javascript jquery

我有两个div,其中包含一些元素(图像,文本等),我需要知道哪个div持有被点击的元素。例如:

  • 如果我点击div 1中的任何元素,则重定向到“pagina1.php”
  • 如果我点击div 2中的任何元素,然后重定向到“pagina2.php”

如何在jquery中执行此操作?

4 个答案:

答案 0 :(得分:4)

只需将点击处理程序绑定到DIV(您的内容包装器):

$( '#div1, #div2' ).click( function ( e ) {

    this // references the DIV inside which the click occured
    e.target // references the element that was clicked

});

答案 1 :(得分:1)

你可以将click事件绑定到你div中的所有元素,你可以在这里找到如何做到http://api.jquery.com/click/,你可以为每个div做出这样的事情:

$('div#1 > *').click(function(e) {
  //This will tell you the tagname of the element that was click.
  alert($(this).tagName);

  //this will redirect you to pagina1.php might not be the best choice
  window.location.replace('pagina1.php');
});

你必须为div#2做同样的事情。

你必须注意到我所做的选择器只适用于div元素的第一个子节点。

Saludos。

答案 2 :(得分:0)

$('div.element-1 > *').click(function() { alert('first div childs') });

答案 3 :(得分:0)

我很确定$('').click几乎适用于所有HTML元素(包括DIV)。这是因为事件通过元素父链向上冒泡。如下所示:

<script>
$(document).ready(function()
{
$("#div1").click(function() { alert("something in div1 clicked"); }
$("#div2").click(function() { alert("something in div2 clicked"); }
$("#div3").click(function() { alert("something in div3 clicked"); }
}
</script>
</head>
<body>
<div id="div1"><table><tr><td><span>blah</span></td></tr></table><div>
<div id="div2"><span>blah2</span><div>
<div id="div3"><img src=""><div>