0

.appened を使用して、prettyphoto ライトボックス クローンが開いたときに出力されるマークアップの div に HTML を追加しています。

ギャラリーの新しい画像が戻る/次のボタンを使用して表示されるたびにではなく、追加された HTML をライトボックスに 1 回だけ読み込む方法を見つけようとしています。

私が発見したことから、これは .bind/.unbind を使用して行われますが、この関数を書くことはうまくいかないようです。

prettyphoto open 関数内で次の偶数ハンドラーを使用しています

$.prettyPhoto.open=function(event){

$(".pbdog-gAd").append('<p style="text-align: center;"><a href="' + prettyLink + '" target="_blank"><img src="' + prettyAd + '" width="468" height="60" alt="" /></a></p>');

その結果、目的の出力が得られます...

私の問題は、次/前のボタンがクリックされるたびにスクリプトが再度実行され、以下に示すように現在の広告画像の下に追加の広告画像が追加されることです。prettyphoto が最終的にクラッシュするまで、これを続けます。

私が理解できることから、このイベントを初めて呼び出す関数を作成する必要がありますが、次/前のボタンがクリックされるたびにではありません

私は運がないので次のことを試しました

$(".pbdog-gAd").bind("click", function( event ) {
$(".pbdog-gAd").append('<p style="text-align: center;"><a href="' + prettyLink + '" target="_blank"><img src="' + prettyAd + '" width="468" height="60" alt="" /></a></p>');
$(this).unbind( event );
});

上記を実行すると、prettyphoto はこの関数をまとめて無視するようになります。以下を実行すると、きれいな写真が壊れるようです

$.prettyPhoto.bind("click", function( event ) {
$(".pbdog-gAd").append('<p style="text-align: center;"><a href="' + prettyLink + '" target="_blank"><img src="' + prettyAd + '" width="468" height="60" alt="" /></a></p>');
$(this).unbind( event );
});

私はここで何をしているのか明らかに理解していないので、どんな助けでも大歓迎です。

4

1 に答える 1

0

これに対する解決策は、.append の実行後に .removeClass を使用することでした。これにより、画像が 2 回読み込まれなくなり、クラスも削除されたため、.append プロセス中に値が読み込まれない場合、スペースに書式設定が適用されません。

$(".pbdog-gAd").append('<p style="text-align: center;"><a href="' + JprettyLink + '" target="_blank"><img src="' + JprettyAd + '" width="468" height="60" alt="" /></a></p>');
$(".pbdog-gAd").removeClass("pbdog-gAd");
于 2012-08-26T15:24:34.443 に答える