免責事項: 誰かがこれらの質問をしたと確信していますが、同様の質問を見つけるための正確なGoogleキーワードを考えることはできませんでした。だから私と一緒に耐えてください。壊れやすいJqueryコードにつながるクラス名へのイベントのバインド
質問: 私は常に必要に苦しんでいますが理由は次のパターンのjQueryのコードの全体のバルクを再書き込みします
<div class = 'foo'></div>
<script>
$('.foo').on('click', function(){
// Do something
});
</script>
このコードの問題は、それがあまりにも壊れやすいということです。クラスの名前を変更してDOMの構造を変更すると、JSハンドラーをDOMエレメットにバインドすることに関連するJSの全体が編集対象になります。
リスクのような種類のjQueryのコードがにくくするか、または理想的にはすべてのそれを排除するためのベストプラクティスは何ですか?
IMOはグローバルセレクタをできるだけ避けることです。 'const $ parent = $( '。親クラス'); const $ child = $ parent.find( '。child-class') ' –
@john_omalleyは、私が理解できない重要なことを言っているようです。少し明確にすることはできますか? –
'$'関数を使用してDOM内の要素を選択すると、DOM全体を検索しています。コードをどのように構造化したかによって、時にはそれが唯一のオプションです。しかし、jqueryは.find()を使って親要素でスコープを制限することができます。これはデカップリングにとって重要です。上記で言及した正確な関心事(つまり、答えではなくコメント)は扱われませんが、コードのエラーを起こしにくくするのに役立ちます。 –