をトリガしません、このイベントがトリガされますし、完璧に動作します:しかしjQueryの(フォーカスを呼び出す)は、手動でイベント全体
//highlight input contents and row/col when clicked
$("input[type=text]").focus(function() {
//highlight input contents
$(this).select();
//highlight new row/col
$(this).parent().siblings().first().css({"color":"#f2f7fa"}); //row
var index = $(this).parent().index();
$(this).parent().parent().siblings().first().children().eq(index).css({"color":"#f2f7fa"}); //col
});
、フォーカス()メソッド手動で呼び出されます...
//arrow keys move focus to adjacent cells
$(document).keydown(function(e){
if (e.keyCode == 37) { //left
var $inputs = $('input[type=text]');
$inputs.eq($inputs.index($('input[type=text]:focus')) - 1).focus();
}
});
...入力内容は強調表示されません。 select()は機能しません。しかし、行/列のテキストが強調表示されています!したがって、関数の2番目の部分だけが機能します!何故ですか?
以下の最後の行を呼び出す '.focusに()'フォーカスイベントをトリガしません。 '.trigger( 'focus')'でイベントを手動でトリガすることはできますが、通常は再帰的ループにならないように関数を明示的に呼び出すほうがよいでしょう。 – mpen
@mpenありがとうございますが、そうであれば、 '.focus()'を手動で呼び出すと、最初の関数の2番目の部分がどのように働くのでしょうか?つまり、 '// new row/col'の下の部分は? – torjinx
それに答えることはできません。たぶん、実際の例があれば、私はあなたに何が起こっているかを伝えることができます。 – mpen