除了单击之外,让div忽略所有内容

时间:2013-06-27 13:07:38

标签: jquery html map click ignore

我有一张地图,里面有大约3-5个div。当有人点击div时,它会翻转并在div的背面显示一个文本。但如果有人在div上滚动光标并且滚动,那么地图的行为应该像往常一样并且变焦。

我在另一个问题中发现了这一点:http://jsfiddle.net/ZqfTX/。有没有办法说出来

dblclick: function(){$(this).[IGNORE]}

我的想法只是一个想法。如果你有另一种方法,甚至更好。

3 个答案:

答案 0 :(得分:1)

这应该照顾你想要的。这是一个更新的 jsFiddle ,它设置超时并防止双击发生。您可以在允许第二次单击之前设置所需的任何时间量。它还会检测鼠标滚轮的滚动,并根据滚动的方向向上或向下警告。

从您的OP和评论中,我相信这应该可以完成您所要求的一切。至于你的div的动画,我不知道你在做什么,所以这部分需要改变来做你想要的。

下面的代码片段是从其他SO帖子中找到并修改的,非常感谢这张海报: How to disable double clicks or timeout clicks with jQuery?

防止双击

jQuery('.flip').click(function() { 
    var $this = jQuery(this);
    if ($this.data('activated')) return false;  // Pending, return

    $this.data('activated', true);
    setTimeout(function() {
        $this.data('activated', false)
    }, 1500); // Time to wait until next click can occur

    doFlip(); // Call whatever function you want
    return false; 
});

function doFlip() {
    if ($('.flip').find('.card').hasClass('flipped')) {
        $('.flip').find('.card').removeClass('flipped');
    } else {
        $('.flip').find('.card').addClass('flipped');
    }
}

另外,如果您不希望用户再次单击div,请查看jQuery的 .one() 事件处理程序附件,它只允许每个元素执行一次。不确定你是否希望能够再次点击它但是我想把它扔出去以防万一。

答案 1 :(得分:0)

如果您想阻止双击,可以尝试使用event.preventDefault

    $(".yourClass").dblclick(function (e) {
         e.preventDefault();
    });

答案 2 :(得分:0)

看起来您必须将要传递的事件的事件处理程序绑定到地图并手动执行缩放操作。这可能有所帮助: https://code.google.com/p/jquery-ui-map/