我有两个div,其中包含一些元素(图像,文本等),我需要知道哪个div持有被点击的元素。例如:
如何在jquery中执行此操作?
答案 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>