0

ページの読み込み時に最初に大量の画像を読み込むページがあります。これらの画像はライトボックス プラグインに関連付けられており、画像をクリックすると、プラグインが本来の動作を行います。ただし、サーバーから取得したものに基づいて画像のリストを更新するjquery(ドロップダウンボックスによってトリガーされる)を介して追加されたajaxがいくつかあります。画像のリストがリロードされた後、ライトボックス プラグインが機能しなくなったようです。

何か特別なことをする必要があるかどうか誰か知っていますか?

以下は私のhtmlページのコードです(これは機能します):

<div id="gallery">
    <ul id="imagesall">    
       <li>    
         <a title="" href="/catalogFiles/cfil837.jpg">    
          <img height="72" width="72" alt="" src="/catalogFiles/cfil838.jpg"/>    
         </a>    
        </li>
        <li>
         <a title="" href="photos/image2.jpg">
          <img height="72" width="72" alt="" src="/catalogFiles/cfil840.jpg"/>
         </a>
         </li>    
    </ul>
</div>

以下はjquery ajax機能です。セスに感謝します(今、私はSOがTwitterのような機能について言及していたらいいのにと思います:)

jQuery(function(){
  jQuery("select#rooms").change(function(){
    var options = '';
    jQuery.getJSON("/admin/selection.php",{id: jQuery(this).val(), ajax: isAjax},
function(j){
      for (var i = 0; i < j.length; i++) {
 var ul = jQuery('ul#imagesall').empty();
 var images = j[i].images.split(',');
        jQuery.each( images , function(idx, img ) {
ul.append('<li><a title="test" href="/catalogFiles/'+img+'.jpg"><img alt="" src="/catalogFiles/' + img + '.jpg" height="72" width="72"/></a></li>');
        })
          }
        })
      })
    })
4

1 に答える 1

1

ほとんどのjQueryライトボックスプラグインはページをスキャンし、ページの読み込みイベント(つまり、jQueryドキュメントの準備完了イベント)で機能を挿入します。この機能は、クールなライトボックス効果を表示できるようにDOMを変更します。ただし、これらの変更はAJAX呼び出しによって上書きされます。

私の提案は、ライトボックスソースに飛び込んで、DOMで作業を実行する関数を見つけ、ajaxリクエストが正常に戻った後にそれを呼び出すことです。

于 2009-09-09T04:07:58.507 に答える