アクティブなメニューとして html select 要素を使用しています。そこからアイテムを選択すると、アクションが実行され、場合によっては、アクションの副作用によってメニューの値が別の値にリセットされます。
function onMenuChangeHandler() {
var menu = $('#menu');
var menuChoice = menu.val();
if (menuChoice == ...) {
...
menu.blur(); // ensure change handler doesn't get fired again
menu.val(OTHER_VALUE); // **
}
};
これは、複数のブラウザーのデスクトップで正常に動作し、iOS5 でも正常に動作します。不可解なことに、iOS6 で動作しなくなりました。その結果、**
上記の行が存在しないかのように動作します。
値を設定しなくても問題なく動作します。
参考までに: iOS6 には、これとは関係ないように思われる別の変更がありますが、念のために言及します。メニューが選択されると、ピッカーを開いたままにするのではなく、すぐに閉じるようになりました。これは、他のすべてのプラットフォームで機能する方法です。複数の select 要素がある場合でも、非標準の動作が発生します。