質問: slick.jsで、現在表示されている画像に付与される.slick-currentを引き金に、を消すアクションを起こしたいのですが、うまくなりません。 .slick-currentはに付与されます。 html ``` この文字を消す //1枚目 //2枚目 ``` jqueryで、1枚目の画像に.slick-currentが付与されたら要素を消す。 ``` $(function(){ if ($('.slick-current').children().hasClass('slider1')) { $('p').hide(); } else { $('p').show(); } }); ``` どこがおかしいのか分かりません。。。 どうすれば動きますか???? もしかしてslickの仕様上不可能??
回答: > > どこがおかしいのか分かりません。。。 > > > 掲載のコードは`slick-current`というクラス名を持つ要素が既に存在していることを前提に対象となる要素を取得しようとしているので、今回のように動的に`slick-current`というクラス名が対象要素にライブラリ等で付与されるような場合は上手くいきません。 > > slick.jsで、現在表示されている画像に付与される.slick-currentを引き金に、を消すアクションを起こしたいのですが、うまくなりません。.slick-currentはに付与されます。 > > > 動的にクラス名が付与されるのであれば、対象となる要素の`class`属性の値の変化を監視し、`slick-current`という値が付与されたタイミングで、目的の``タグを除去してあげれば良いかと思います。 今回の場合はMutationObserverが使えると思いますので、参考となりそうなリンクを以下に掲載します。 参考 === * * * * * * * * MutationRecordを使用してdomの追加からclass変更までを監視する