Yii フレームワークを使用しています。コンテンツ (写真) を無限にスクロールしたい。この部分は正常に動作します。私の唯一の問題は、画像に何らかの効果を与えるスクリプトが必要なことです (画像を大きくしたり、クリックしたときにテキストを表示したりするなど)。無限スクロールがない場合、このスクリプトは正常に機能します。
<?php
Yii::app()->clientScript->registerScript('overlayimage','
$(".overlay").hide();
$(".box").click(function() {
if($(this).hasClass("col5"))
{
$(this).removeClass("col5").addClass("col3").fadeIn(400).find(".overlay").fadeOut(400);
$(".items").masonry("reload");
$(this).clearQueue();
}
else
{
$(".items").find(".col5").removeClass("col5").addClass("col3").fadeIn(400).find(".overlay").fadeOut(400);
$(this).removeClass("col3").addClass("col5").fadeIn(400).find(".overlay").fadeIn(400);
$(".items").masonry("reload");
$(this).clearQueue();
}
})
',CClientScript::POS_READY);
?>
ただし、無限スクロールがある場合 (スクリプトは にありCClientScript::POS_LOAD
ます)、スクリプトは新しく追加された要素では機能しません。無限スクロールの後に同じスクリプトを追加しようとしましたCClientScript::POS_LOAD
が、この場合、一部の要素ではスクリプトが 2 回実行され、別の場所でコードを繰り返すのは正しい方法ではないと思います。
新しくロードされた要素に対してもスクリプトを実行する場所を見つけるのを手伝ってくれる人はいますか?
念のため、問題のあるページの例を示します。