Javascript 在mouseup事件Jquery中仅启用Click事件
我在Javascript 在mouseup事件Jquery中仅启用Click事件,javascript,jquery,events,Javascript,Jquery,Events,我在div标签内有ul标签。我已经在div标签上应用了mouseup事件,并在ul标签上单击了事件 问题 每当我单击ultag时,就会触发mouseup和click事件 我想要的是,当我点击ultag时,只有click事件应该触发,如果我在divtag上点击mouseup事件,那么只有mouseup事件应该触发 我的代码: HTML: 您可以使用jQuery检查单击的元素是div还是list: $(document).on('mouseup', '.m1', function(event){
div
标签内有ul
标签。我已经在div
标签上应用了mouseup
事件,并在ul
标签上单击了事件
问题
每当我单击ul
tag时,就会触发mouseup
和click
事件
我想要的是,当我点击ul
tag时,只有click
事件应该触发,如果我在div
tag上点击mouseup
事件,那么只有mouseup
事件应该触发
我的代码:
HTML:
您可以使用jQuery检查单击的元素是div还是list:
$(document).on('mouseup', '.m1', function(event){
// Check if the clicked element is the div and not the list
if($(event.target).is('div'))
alert('div mouseup ');
});
$(document).on('click', 'ul li', function(){
alert("ul li- clicked ");
});
您可以停止事件的传播
$(document).on('mouseup','.m1',function(){
警报(“div mouseup”);
});
$(文档).on('mouseup','.m1ul',函数(e){
e、 停止传播()
});
$(文档)。在('click','ul li',function()上{
警报(“ul li-点击”);
});代码>
尼汀·索兰基
- 一个
- 两个
这是一个奇怪的问题,因为“点击”的一部分实际上是鼠标。
单击包括鼠标向下,然后在同一元素上单击鼠标
我认为您在这里可以做的唯一一件事是在单击开始时进行存储,并为mouseup事件所依赖的变量添加一秒钟的超时
像这样。(我甚至贴了这篇文章也觉得很脏)
原因是事件冒泡。您可以使用event.stopPropagation()处理此问题代码>
在问题中发布您的代码。。。不仅仅是一个小链接
$(document).on('mouseup', '.m1', function(){
alert('div mouseup ');
});
$(document).on('click', 'ul li', function(){
alert("ul li- clicked");
});
$(document).on('mouseup', '.m1', function(event){
// Check if the clicked element is the div and not the list
if($(event.target).is('div'))
alert('div mouseup ');
});
$(document).on('click', 'ul li', function(){
alert("ul li- clicked ");
});
var clickStarted = false;
$(document).on('click', 'ul li', function(){
alert("ul li- clicked");
clickStarted = false;
});
$(document).on('mousedown', 'ul li', function(){
clickStarted = true;
setTimeout(function(){ clickStarted = false; }, 1000);
});
$(document).on('mouseup', '.m1', function(){
if(!clickStarted)
alert('div mouseup ');
});
$(document).ready(function(){
$("ul li").click(function(event){
event.stopPropagation();
alert("The ul li element was clicked.");
});
$(".m1").click(function(){
alert("The div element was clicked.");
});
});