防止拖动时触发点击事件[重复]

Posted

技术标签:

【中文标题】防止拖动时触发点击事件[重复]【英文标题】:Prevent click event triggered when dragging [duplicate] 【发布时间】:2012-12-16 11:57:43 【问题描述】:

可能重复:Preventing click event with jQuery drag and drop

假设有一个相册滑块。用户可以拖动照片滑块并在单击照片时选择要查看的照片。问题是单击事件与拖动事件重叠。这意味着,当用户单击要拖动的照片时,也会发生单击事件。谢谢

    //slider is draggable
    $('#slider').draggable(axis: "x");

    //slider photo click event
    $('#slider li').click(function() 
        page_index = $(this).attr('class').substring(4);
        tmp = parseInt(page_index);
        $('#book').turn('page', tmp);
        close_overlay();
    )

【问题讨论】:

抱歉,这个错误似乎是由我以前的代码引起的,您提供的链接运行良好。谢谢 【参考方案1】:

我认为这个问题是由事件冒泡引起的。试试我的解决方案

function cancelBubbleEvent(e) 
    if (e) 
         e.stopPropagation();
    
    else 
         window.event.cancelBubble = true;
    


//slider is draggable
$('#slider').draggable(axis: "x");

//slider photo click event
$('#slider li').click(function(e) 
    page_index = $(this).attr('class').substring(4);
    tmp = parseInt(page_index);
    $('#book').turn('page', tmp);
    close_overlay();

    // cancel event bubbling
    cancelBubbleEvent(e);
)

【讨论】:

对不起它不起作用,当我拖动照片时,它仍然触发点击事件 也许你应该在 JSFiddle.net 上做一个演示 谢谢,我使用了类似的想法,它有效

以上是关于防止拖动时触发点击事件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何避免jQuery UI可拖动也触发点击事件[重复]

解决JavaScript拖动时同时触发点击事件的BUG

React,如何防止在拖动后执行单击事件?

前端js防止用户恶意操作,重复点击按钮事件

带有可点击对象的jQuery可拖动列表 - 防止点击拖动

jQuery UI Sortable -- 如何取消拖动/排序项目的点击事件?