我正在为我的网站构建一个非常简单的基于Web的文件浏览器。
我将我的链接设置为看起来像文件,我希望能够单击以选择它们,这样我就可以执行重命名等操作,我希望能够双击以实际激活链接并下载文件。
我想出了以下内容,但看起来很难看。有没有人有更优雅的解决方案?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script type="text/javascript">
function nullClick()
{
//do select stuff
return false;
}
function dolink(link)
{
window.location(link.href);
}
</script>
</head>
<body>
<a href="http://pathtofile" onclick="return nullClick();" ondblclick="dolink(this);">Clicky</a>
</body>
</html>
答案 0 :(得分:4)
我会避免这样做,因为它违背了用户期望网站选择功能的方式,但是如果必须的话,你这样做的方式是我所知道的唯一方式。
此外,如果javascript被禁用或不可用,您应该知道该网站将回退到单击链接。
答案 1 :(得分:2)
<a href="http://pathtofile" onclick="return false" ondblclick="window.location = 'some where'">Clicky</a>
我认为使用一行代码会更优雅。
答案 2 :(得分:1)
如果你不反对一点jQuery:
$("#yourLinkId").dblclick(function () {
window.location($(this).attr("href"));
});
答案 3 :(得分:1)
如何使用jQuery?
HTML示例:
<a href="javascript:alert('link1')" class="dblclick">link1</a><br>
<a href="javascript:alert('link2')" class="dblclick">link2</a><br>
<a href="javascript:alert('link3')" class="dblclick">link3</a><br>
jQuery示例:
$('a.dblclick')
.bind('click', function() { return false; })
.bind('dblclick', function() { window.location = this.href; });
<!doctype html>
<html lang="en">
<head>
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(init);
function init() {
$('a.dblclick')
.bind('click', function() { return false; })
.bind('dblclick', function() { window.location = this.href; });
}
</script>
</head>
<body>
<a href="javascript:alert('link1')" class="dblclick">link1</a><br>
<a href="javascript:alert('link2')" class="dblclick">link2</a><br>
<a href="javascript:alert('link3')" class="dblclick">link3</a><br>
</body>
</html>
答案 4 :(得分:0)
如果你没有使用任何JavaScript框架,那可能就好了。你可以摆脱你的职能;
<a href="..." onclick="return false;" ondblclick="location.href='...';">Foobar</a>