配列を取得しました[1,2,3,4]
私は最初に選ばれた[2]に蹂躙し、彼のスタイルを設定し、そして他の子供たちに蹂躙して彼らのスタイルをリセットした後よりも必要です。
現時点では、私のアルゴリズムは次のとおりです。
for item in array
if item == chosenEl
set chosen classes
for item in array
if item != chosenEl
reset chosen classes for the rest of the children
またはコーヒー:
for item in @array
if item.element is element
item.selected = true
item.element.classList.add @selectedClass
item.element.focus()
for item in @array
if item.element isnt element
item.selected = false
item.element.classList.remove @selectedClass
フレームワークにいくつかの制限があるため、単純なforElseループとしてではなく、そのような関数を設計する必要があります。
このコードを改善するにはどうすればよいですか?
ありがとうございました。
説明-この設計が必要な理由は、2つの異なる関数の呼び出しが重複していて、互いに競合しているためです。
LGTV用のアプリを開発しています。LGTVには独自のライブラリがあります。今、私の関数で、選択した要素のスタイルを設定しました。選択した要素に焦点を合わせると、LG TV onFocusリスナーがアクティブになり、LGTVonFocusリスナーが選択したスタイルを制御します。
したがって、2番目または3番目の子をループするときに、クリアされた要素の選択されたスタイルを再度設定します。TLDRですが、それがループが互いに競合する方法です。一方が他方の作業を中断します。
コードは私が書いたものではありません。既存のプロジェクトに参加しましたが、この関数を作成したことがないため、Focus()関数を削除することはできません。