0

再びあなたの助けを期待しています。小さな問題に直面するのはばかげた問題かもしれません。仕事用に小さな jQuery プラグインを作成しています。そのプラグインは完全にカスタマイズ可能である必要があります。このタスク以外はほぼ完了しています。

実際には、ユーザーが入力要素をクリックして上矢印と下矢印をキーダウンすると、それぞれ値を増減する必要があります。ただし、どの矢印キーを使用するかはカスタマイズ可能です。ユーザーが「updown」を選択すると、上矢印キーが機能するはずです。ユーザーが「leftright」を選択すると、右矢印キーと左矢印キーがそれぞれ機能して値が増減します。この状況では、ユーザーはカーソルを左右に移動するために上下の矢印キーが必要です。現在、左右の矢印キーが他の目的に使用されているためです。

実際、キャレット位置を使用できるという解決策があります。しかし、この作業を簡単に行うのに役立つ他の簡単な方法はありますか?

PS: 私の質問で混乱した方がいたら申し訳ありません。

4

2 に答える 2

2

オブジェクトを使用してキーコードを保存できます..このようなもの

<select id="keys" >
    <option value="updown"> Up - Down </option>
    <option value="leftright"> Left - Right</option>
</select>


var keys = {
    updown:{
        inc:38,
        dec:40
    },
    leftright:{
        inc:37,
        dec:39
    }
}

document.onkeyup = function KeyUp(e) {
    var selected = document.getElementById("keys");
    var keyCode = (window.event) ? event.keyCode : e.keyCode;
    if(keys[selected.value].inc === keyCode){
       alert("increase.........");
    }else if(keys[selected.value].dec === keyCode){
       alert("decrease.........");
    }
}

デモ: http://jsfiddle.net/2qaJf/1/

注: デモを試すときは、select 要素のフォーカスをクリアしてください。

于 2012-10-11T11:59:53.877 に答える
0

私は質問にかなり混乱していますが、私が理解しているのは、上矢印キーを右矢印キーのように機能させたいということです。

$(document).keydown (function (e) {
  if(e.which == 38){
  console.log("up arrow pressed - put right arrow key function or trigger the right arrow key event here"); 
  }
});

38 = 上矢印キーイベント

これが役立つことを願っています。

于 2012-10-11T12:07:05.037 に答える