我有jquery一个功能,如果我点击一个 html 框,我会得到一个小信息框,但我的问题是,我可以有两个不同的功能吗,如果我点击这个框,我会得到一个小信息框,但如果我这样做双击,然后我应该转到其他页面?我的代码是这样写的:
<div onclick="getInofbox(id)"><img src="image.jpg" /></div>
单击时,我只得到带有内容的小框,我找不到任何双击选项。
我有jquery一个功能,如果我点击一个 html 框,我会得到一个小信息框,但我的问题是,我可以有两个不同的功能吗,如果我点击这个框,我会得到一个小信息框,但如果我这样做双击,然后我应该转到其他页面?我的代码是这样写的:
<div onclick="getInofbox(id)"><img src="image.jpg" /></div>
单击时,我只得到带有内容的小框,我找不到任何双击选项。
您可以使用dblclick()
jquery 事件。
$('div').dblclick(function () {
alert('Double click');
});
但是根据 jQuery API 文档,不建议对同一个 HTML 元素使用 click 和 dblclick 事件处理程序。您可以在此处参考 API 文档。
检查这个演示
回答你的这个问题:“我现在离开这个解决方案,只打开第一个带有链接的信息框,如果我点击一个元素并获取信息框,那么如果我点击另一个框,点击后应该是第一个盒子关了? ”
您可以为两个链接注册点击,打开第二个信息框时只需关闭第一个信息框。
你检查这个演示,在这个我使用了 jQuery UI 对话框(它不是模态对话框),并在点击第二个对话框时关闭第一个对话框。
要在同一个元素上单击和双击事件,请使用 timeout :
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 秒的超时时间。如果它只检测到一个简单的点击,它会调用这个简单点击的函数。否则,它会清除超时并进入双击功能。