Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的Rel属性_Javascript_Javascript Events_Lightbox - Fatal编程技术网

Javascript中的Rel属性

Javascript中的Rel属性,javascript,javascript-events,lightbox,Javascript,Javascript Events,Lightbox,我有lightbox gallery视图脚本,工作正常 在我的站点中,我使用ajax脚本调用另一个页面并将其加载到DIV中 例如: ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ var ajaxDisplay = document.getElementById('loadmailfunctions'); ajaxDisplay.innerHTML = ajaxRequ

我有lightbox gallery视图脚本,工作正常

在我的站点中,我使用ajax脚本调用另一个页面并将其加载到DIV中

例如:

ajaxRequest.onreadystatechange = function(){
  if(ajaxRequest.readyState == 4){
    var ajaxDisplay = document.getElementById('loadmailfunctions');
    ajaxDisplay.innerHTML = ajaxRequest.responseText; sizeit();
    setVisibility('uploads', 'block'); settotime();
  }
}
ajaxRequest.open("GET", "profile/photos.inc.php", true);
ajaxRequest.send(null); 
然后加载我需要的所有照片,但当我单击照片并使用rel=“lightbox”时,它不起作用

这与父DOM/窗口或其他东西有关吗?对不起,有点麻烦,但我希望有人能给我指出正确的方向

编辑:


在加载的页面profile/photos.inc.php中,我有以下代码:

echo '<li><a href="',$row['localdirectory'],$row['photo'],'" rel="lightbox" ><img src="',$row['localdirectory'],$row['photo'],'" style="width:110px; height:85px;" alt="" /></a></li>'
echo'
  • '

    但不执行Lighbox查看器脚本。

    Lightbox在页面加载后激活,它扫描DOM树,使用
    rel=“Lightbox”
    属性搜索锚,并将
    onclick
    事件绑定到锚。当您执行AJAX调用时,会向DOM树中添加新元素,但您必须手动初始化扫描新锚

    正如开发人员所暗示的,Lightbox用法示例仅在页面加载时激活
    rel=“Lightbox”
    链接:

    <script type="text/javascript">
    $(function() {
       $('a[@rel*=lightbox]').lightBox({
        overlayBgColor: '#FFF',
        overlayOpacity: 0.6,
        imageLoading: 'http://example.com/images/loading.gif',
        imageBtnClose: 'http://example.com/images/close.gif',
        imageBtnPrev: 'http://example.com/images/prev.gif',
        imageBtnNext: 'http://example.com/images/next.gif',
        containerResizeSpeed: 350,
        txtImage: 'Imagem',
        txtOf: 'de'
       });
    });
    </script>
    
    顺便说一句,如果您使用的是lightbox jQuery插件(我必须假设您是,因为您没有另外指定),那么为什么不整体使用jQuery呢


    如果您没有使用jQuery插件,请以类似的方式重复事件处理程序设置。

    什么是“它不工作”?这是非常模糊的。代码中的任何内容都与HTML的
    rel
    属性无关。在加载的页面配置文件/photos.inc.php中,我在加载的页面配置文件/photos.inc.php中有此代码,我有这段代码echo'
  • ,但没有执行Lighbox查看器脚本我希望当点击链接时,它会在lightbox gallery视图中打开较大的图像,但它不会工作,有什么想法吗?谢谢,我明白你的意思了,那么我如何初始化新锚的扫描呢?我是否在Ajax调用的末尾添加了一个方法?您应该在
    ajaxDisplay.innerHTML=ajaxRequest.responseText但我不知道您使用的是哪种lightbox库,因此我无法提供确切的代码。非常感谢,是的,我正在使用lightbox jQuery插件,我会尝试一下。谢谢你的帮助:)a[@rel*=lightbox]
    中的
    @
    是什么意思?@Rocket:坦白说,我不知道。没有提到它,但似乎对它很满意,这是一个被所有帐户广泛使用的插件。因此,我将把特定的选择器留给他们使用。@Rocket:可能与(尽管这似乎意味着jQuery灯箱不再工作):“注意:在jQuery 1.3中,删除了[@attr]样式选择器(它们以前在jQuery 1.2中被弃用)。只需从选择器中删除“@”符号,即可使它们再次工作。”不过,我还是让插件作者来决定。我只是扩展了它们的用法示例,而不是重写它。@Wayne:您能提供一个您正在使用的实际插件的引用吗?你从来没说过。
    <script type="text/javascript">
    var lightBoxOptions = {
        overlayBgColor: '#FFF',
        overlayOpacity: 0.6,
        imageLoading: 'http://example.com/images/loading.gif',
        imageBtnClose: 'http://example.com/images/close.gif',
        imageBtnPrev: 'http://example.com/images/prev.gif',
        imageBtnNext: 'http://example.com/images/next.gif',
        containerResizeSpeed: 350,
        txtImage: 'Imagem',
        txtOf: 'de'
    };
    
    $(function() {
       // Set Lightbox handlers on "static" elements
       $('a[@rel*=lightbox]').lightBox(lightBoxOptions);
    });
    
    // then, whereever your AJAX code is:
    ajaxRequest.onreadystatechange = function(){
      if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('loadmailfunctions');
        ajaxDisplay.innerHTML = ajaxRequest.responseText; sizeit();
        setVisibility('uploads', 'block'); settotime();
    
        // Set Lightbox handlers on new elements
        $('#loadmailfunctions a[@rel*=lightbox]').lightBox(lightBoxOptions);
      }
    }
    </script>