1

フォーカスのあるテーブル行でキーを押すと、Java スクリプト関数を呼び出したいと考えています。以下はコードですが、Enterキーを押してもスクリプト関数は呼び出されません。

http://jsfiddle.net/sirishkumar/58FZG/19/

<input id="test" type="text">
<table>
    <tr onkeypress="return openLog(e,'row 1')">
        <td>Row 1</td>
    </tr>
    <tr onkeypress="return openLog(e,'row 2')">
        <td>Test</td>
    </tr>
</table>


var j = jQuery;
var currentRow = 0;
var pagesize = 2;

function ChangeCurrentRow() {
    var tableRow = document.getElementsByTagName("tr")[(currentRow % pagesize)];
    tableRow.focus();
    j(tableRow).siblings().removeClass("highlight-row");
    j(tableRow).addClass("highlight-row");
}

j(document).ready(function () {
    j('#test').val("Ready");
    ChangeCurrentRow();

});

j(document).keydown(function (e) {

    if (e.keyCode == 38) {
        currentRow--;
        ChangeCurrentRow();
        return false;
    }
    if (e.keyCode == 40) {
        currentRow++;
        ChangeCurrentRow();
        return false;
    }
});


function openLog(e, id) {

    if (e.keyCode == 13) {
        $('#input').text(id)
    }

    return true;
}
4

1 に答える 1

0

行の「フォーカス」はありません。あなたfocus()は何もしません。書いてみてください:

j(tableRow).focus(function(){alert('test');});
tableRow.focus();

そして、何も表示されません =) キープレス イベントを a$(document).keypress()で処理し、選択した行で操作を実行してみてください。onkeypressfor tr - 何もしません ( contenteditable="true"tr​​ を除く)。

于 2013-03-08T10:17:42.463 に答える