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.");
        });
    });