【问题标题】: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();
    })

【问题讨论】:

  • 抱歉,这个错误似乎是由我以前的代码引起的,您提供的链接运行良好。谢谢

标签: javascript jquery jquery-ui onclick draggable


【解决方案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 上做一个演示
  • 谢谢,我使用了类似的想法,它有效
猜你喜欢
  • 2015-04-28
  • 1970-01-01
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多