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 功能。感谢seth(现在我希望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 回答