仅在双击时激活链接

时间:2009-11-10 18:25:00

标签: javascript html

我正在为我的网站构建一个非常简单的基于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>

5 个答案:

答案 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; });

SSCCE

<!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>