透明でない背景色を持つ最も近い親を見つけようとします。親の背景色が透明でないことを確認
最初のコードは動作しますが、親が見つかりますが、色は透明です。
bg = (e.parentsUntil($(this).has().css("background-color"))).css("background-color");
だから私はこれで苦労:マイナーな問題があります
bg = (e.parentsUntil($(this).has().css("background-color") <> 'transparent').css("background-color");
、そのクロムはRGBA(0,0,0,0)と透明定義するが、これは、またはステートメントで可能でなければなりませんすぐに最初のハードルが取られます。
['.parentsUntil()'](https://api.jquery.com/parentsUntil/)と['.has()'](https:// api)のドキュメントを実際に見てください。 .jquery.com/has /) – Andreas
@Andreas私はそうしました。なぜ最初のコードが機能するのか...しかし、透明を排除する方法はありません。 – ratmalwer
'.parentsUntil()'にセレクタまたは要素が必要です。 '.has()'はセレクタまたは要素を期待するので、 '$(this).has()'は空の集合を返します。 '.css(" background-color ")'が空集合で実行されると 'undefined'が返されます。したがって、すべての親を ''([fiddle](https://jsfiddle.net/tf5e0und/))まで返す 'e.parentsUntil(undefined) 'を呼び出しています – Andreas