Javascript 在div中触发div

Javascript 在div中触发div,javascript,jquery,Javascript,Jquery,我正在使用jQuery处理div元素上的单击事件: 但是这个div元素包含另一个div,我们称之为id2,包含可单击的部分。如果用户单击id2,如何防止mousedown事件触发?现在,当我单击id2时,mousedown'id'和onclick'id2'将触发。您应该使用,以便id2的click事件不会同时触发id的mousedown事件。同时,当单击id2时,mousedown似乎无论如何都会触发,因此您可以检查id属性以避免在单击id2时执行代码。下面是一个简单的例子: $id.on'm

我正在使用jQuery处理div元素上的单击事件:

但是这个div元素包含另一个div,我们称之为id2,包含可单击的部分。如果用户单击id2,如何防止mousedown事件触发?现在,当我单击id2时,mousedown'id'和onclick'id2'将触发。

您应该使用,以便id2的click事件不会同时触发id的mousedown事件。同时,当单击id2时,mousedown似乎无论如何都会触发,因此您可以检查id属性以避免在单击id2时执行代码。下面是一个简单的例子:

$id.on'mousedown',functionevent{ 如果event.target.id==='id2'{ 日志'Mousedown-evet从id2激发,正在中止…'; 回来 } console.log'Mousedown on id'; }; $id2.“单击”时,functionevent{ 事件。停止传播; console.log“点击id2”; }; ID 1 ID 2 您应该使用,以便id2的click事件不会触发id的mousedown事件。同时,当单击id2时,mousedown似乎无论如何都会触发,因此您可以检查的id属性,以避免在单击id2时执行代码。下面是一个简单的例子:

$id.on'mousedown',functionevent{ 如果event.target.id==='id2'{ 日志'Mousedown-evet从id2激发,正在中止…'; 回来 } console.log'Mousedown on id'; }; $id2.“单击”时,functionevent{ 事件。停止传播; console.log“点击id2”; }; ID 1 ID 2
因为您使用的是jQuery,所以可以将mousedown侦听器附加到内部div,然后从中返回false:

$internal.clickfunction{ 已单击console.loginner div; 返回false; }.onmousedown,函数{ console.logmousedown传播在此停止; 返回false; }; $outer.onmousedown,函数e{ console.logouter div鼠标向下 }; 外{ 背景颜色:绿色; 填充:50px; 显示:内联块; } 内在的{ 高度:0px; 填充:20px; 背景色:红色; 宽度:100px; }
因为您使用的是jQuery,所以可以将mousedown侦听器附加到内部div,然后从中返回false:

$internal.clickfunction{ 已单击console.loginner div; 返回false; }.onmousedown,函数{ console.logmousedown传播在此停止; 返回false; }; $outer.onmousedown,函数e{ console.logouter div鼠标向下 }; 外{ 背景颜色:绿色; 填充:50px; 显示:内联块; } 内在的{ 高度:0px; 填充:20px; 背景色:红色; 宽度:100px; }
您希望在哪个div上接收事件,外部id还是内部id 2?鼠标向下并单击是不同的事件使用StopperPropagation。。您希望在哪个div上接收事件,外部id还是内部id 2?鼠标向下并单击是不同的事件使用StopperPropagation。。问题:event.stopPropagation防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知,但在这里,父处理程序是目标元素,那么将stopPropagation设置为子处理程序将阻止传播到其子处理程序,是这样吗?我的意思是event.target.id==='id2'测试在这里是强制性的,对吗?stopPropagation防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知。我甚至没用过。检查目标的id/类列表是否合适问题:event.stopPropagation防止事件在DOM树上冒泡,防止任何父处理程序收到事件通知,但在这里父处理程序是目标元素,然后将stopPropagation设置为子处理程序将阻止其子处理程序的传播,是这样吗?我的意思是event.target.id==='id2'测试在这里是强制性的,对吗?stopPropagation防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知。我甚至没用过。检查目标的id/类列表适合我
$("#id").on('mousedown', function(event) {
    // ...
});