私は最も奇妙なループと戦ってきました。コードを単純化して、これら 2 つのほぼ同一の jsFiddle にしました。
- http://jsfiddle.net/brentonstrine/crzTB/5/ (無限ループ)
- http://jsfiddle.net/brentonstrine/crzTB/7/ (期待どおりに実行されます)
そのうちの 1 つがループに陥ります (コンソールを開いてください)。それらの1つはそうではありません。
唯一の違いはクラス名です。真剣に、それらを 2 つのタブで開き、前後に移動します。それらは同一です。
複数のコンピューターの Chrome、Firefox、および IE でこれをテストし、最初に開くコンピューターを変えました。毎回同じ結果。どうして??????????????
$("body").on("keydown", ".fixedValue:not(input)", function (e) {
e.preventDefault();
console.log("the div (which is not input?) was triggered.");
$(".fixedValue input").trigger("keydown", e.keyCode);
});
$(".fixedValue input").on("keydown", function (e) {
console.log("input (e.g. not the div) triggered.");
});