在jQuery中拖动后阻止点击事件 [英] prevent click event after drag in jQuery

查看:578
本文介绍了在jQuery中拖动后阻止点击事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个可拖动的< div> ,带有点击事件,没有任何拖拽事件。

I have a draggable <div> with a click event and without any event for drag.

但在我拖动< div> 后,点击事件将应用于< div>

but after i drag <div> the click event is apply to <div>.

拖动后如何防止点击事件?

how can prevent of click event after drag?

$(function(){
    $('div').bind('click', function(){
        $(this).toggleClass('orange');
    });

    $('div').draggable();
});

http://jsfiddle.net/prince4prodigy/aG72R/

推荐答案

我用<做了一个解决方案code> data 和 setTimeout 。也许比帮助类更好。

I made a solution with data and setTimeout. Maybe better than helper classes.

<div id="dragbox"></div>

$(function(){
    $('#dragbox').bind('click', function(){
        if($(this).data('dragging')) return;
        $(this).toggleClass('orange');
    });

    $('#dragbox').draggable({
        start: function(event, ui){
            $(this).data('dragging', true);
        },
        stop: function(event, ui){
            setTimeout(function(){
                $(event.target).data('dragging', false);
            }, 1);
        }
    });
});

检查 小提琴

Check the fiddle.

这篇关于在jQuery中拖动后阻止点击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆