1个html对象 - 不同的功能(一键式和双击)

时间:2013-07-15 14:17:22

标签: javascript jquery html onclick

我有 jquery 一个函数,如果我点击一个html框,我会得到一个小信息框,但我的问题是,我可以有两个不同的功能,如果我点击框,我得到了小的信息框,但如果我做了双击,那么我应该去另一页?我的代码是这样写的:

<div onclick="getInofbox(id)"><img src="image.jpg" /></div>

点击后我只得到包含内容的小方框,我找不到任何双击选项。

2 个答案:

答案 0 :(得分:1)

您可以使用dblclick() jquery事件。

$('div').dblclick(function () {
    alert('Double click');
});

但是根据jQuery API文档,不建议对同一个HTML元素使用click和dblclick事件处理程序。您可以参考API文档here

选中此demo

回答你的问题:“我现在已经离开了这个解决方案,并且只打开第一个带链接的信息框,如果我点击一个元素并获取信息框,则可能,如果我点击其他框,点击后应该是第一个关闭的框?

您可以注册两个链接的点击,当打开第二个信息框时,只需关闭第一个信息框。

你检查this demo,在这里我使用了jQuery UI对话框(这不是模态对话框),然后点击第二个对话框关闭第一个对话框。

答案 1 :(得分:1)

要在同一元素上进行单击和双击事件,请使用超时:

var timeout, doubleClick = false;

$('p').click(function() {
   timeout = setTimeout(simpleClick, 500); 
});

$('p').dblclick(function() {
    doubleClick = true;
    clearTimeout(timeout);
    alert('Double click');
});

function simpleClick() {
    if(!doubleClick) {
        alert('Simple click');
    }
    doubleClick = false;
}

在这里,您有0.5秒的超时时间。如果它只检测到一次简单的点击,它会调用该功能进行简单的点击。否则,它会清除超时并转到双击功能。

An exemple on jsfiddle.