2

フィドル: http://jsfiddle.net/TKWzH/8/

「テスト ポップ」は、アイテムの現在の機能です。「Test Pop 2」は、スクリプトを機能させたいものです。ただし、実際のスクリプトには、ポップアップを閉じるだけでなく、クリックの実行に関するより多くの機能があります。

on enter コマンドと on mouseup コマンドを 1 行にまとめる方法はありますか?

$("#popup2 label").on('keyup || mouseup', function (event) {
    $('#popup2').css('display', 'none');
});

そのようなものが私が探しているものですが、キーアップがエンターキーのキーアップに対してのみ機能するようにしたいです。それが書かれているように、それはどのキーでも起こります。

私がこれをやろうとしている理由は、フォームのキーボードにアクセスできるようにしたいからです。フィドルからわかるように、キーボードで Test Pop をナビゲートする場合、ラジオ ボタンを選択した後にダイアログを再度開く必要があります。

4

2 に答える 2

4

スペースを使用するだけです。

$("#popup2 label").on('keyup mouseup', function (e) {
    if (e.type == 'keyup' && e.which != 13) return;
    $('#popup2').css('display', 'none');
});

ドキュメントから:

 .on( events [, selector] [, data], handler(eventObject) )

events "click" や "keydown.myPlugin" など、スペースで区切られた1 つ以上のイベント タイプとオプションの名前空間。

于 2012-07-16T18:19:13.387 に答える
0
$("#popup2 label").on('keyup mouseup', function (e) {
    if (e.type==='keyup') { //key was pressed
        var code = (e.keyCode ? e.keyCode : e.which);
        if(code == 13) { //Enter was pressed
            //Do something
            $('#popup2').css('display', 'none');
        }
    }else{
        //mouseup was the trigger
        $('#popup2').css('display', 'none');
    }
});

かなり単純化できますが、それがどのように行われたかを示すだけです!

于 2012-07-16T18:28:41.100 に答える