1

ctrlキーを介して複数のリンククリックを処理する方法(方法がある場合)を知りたいです。

したがって、たとえば、ユーザーは約3つのハイパーリンクがあるWebページにアクセスします。次に、ユーザーはctrlキーを押したまま、1つのリンクをクリックしてから別のリンクをクリックします。次に、ctrlキーを離すと、イベントが発生します(おそらく、両方のハイパーリンクの値の組み合わせに基づく検索)。

私はC#を使用していますが、解決策はおそらくjQueryで行われると思いますか?

選択は、Windowsエクスプローラーと同じように機能するはずです。キーを押したままctrl、ファイルを選択し、次に別のファイルを選択して、どこかに切り取ったり貼り付けたりします。

私は他の場所で助けを見つけるのに苦労しているので、あなたが提供できるどんな助けにも感謝します。

4

2 に答える 2

1

このようなことができます。CTRL キー (キーコード = 17) の状態を保持し、CTRL が押されたときに配列にリンクを追加 (keydown イベント)、keyup イベント (キーコード == 17 のとき) でリンクを新しいウィンドウで開きます。それらをタブで開くことは実際には不可能ですが、Firefox 用の動作サンプルがあります。これを読んでください。

例:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
var ctrlIsDown = false;
var links = new Array();

function afterKeyUp()
{
    if(links.length > 0){
        for(var link in links){
                window.open(links[link]);
        }
        links = new Array();
        $("a").css('color', '');
    }
}

$(document).ready(function(){

$(document).keydown(function(e){ 
    if(e.which == 17) {
        ctrlIsDown = true;
    }
});

$(document).keyup(function(e){ 
    if(e.which == 17) {
        ctrlIsDown = false;
        afterKeyUp();
    }
});

$("a").click(function(e){
    if(ctrlIsDown){
        var href = $(this).attr("href");
        if($.inArray(href, links) == -1)
        {
            links[links.length] = href;
            $(this).css('color', 'red');
        }
    e.preventDefault();
    }
});

});
</script>
</head>
<body>

<a href="1.html">Link 1</a>
<a href="2.html">Link 2</a>
<a href="3.html">Link 3</a>


</body>
</html>
于 2012-04-25T10:30:34.363 に答える
0

高レベルのアイデアは

1)選択したリンクを強調表示するCSSクラスを作成します

2)ハイパーリンクのKeyDown javasacriptイベントでCtrlキーを検出するJavaScript関数を記述します。この関数は、ハイパーリンクのクラスを選択したリンクに切り替え(ユーザーがどのハイパーリンクが選択されているかを知ることができるように)、ハイパーリンクの値/ URLを隠しフィールドに追加して知る必要があります選択したハイパーリンクのリンク

3) ハイパーリンクの KeyUp javasacript イベントに JavaScript 関数を記述して、選択したリンクを取得し、それに対してアクションを実行します。

于 2012-04-25T10:27:16.087 に答える