【问题标题】:Two fancybox inline pop-ups on page页面上有两个fancybox内联弹出窗口
【发布时间】:2013-11-24 20:26:31
【问题描述】:

我们正在尝试向我们的网站添加两个花式框内联弹出窗口。我们让一个工作,但我们无法让第二个工作。你能看看我们的代码吗?

对于 html,我们编写了以下内容:

<a id="popup-inline" href="#data"><div class="button">Click here</div></a><br><br>
        <div style="display:none">
            <div id="data">
                TEXT
            </div>
        </div>

<a id="popup-inline" href="#data1"><div class="button">Click here</div></a><br><br>
        <div style="display:none">
            <div id="data1">
                TEXT1
            </div>
        </div>'

此外,我们的 jquery 是:

$(document).ready(function() {
$("#popup-inline").fancybox({
      'titlePosition' : 'inside' });
    });
</script>

【问题讨论】:

    标签: jquery fancybox inline


    【解决方案1】:

    ID 是唯一的,因此将其更改为两个元素的类:

    <a class="popup-inline" ...
    

    然后做:

    $(".popup-inline").fancybox({
         'titlePosition' : 'inside'
    });
    

    jQuery(和一般的 javascript)只有在两次使用相同 ID 时才找到第一个元素,因为其他任何东西都是无效标记,并且不是预期的。

    【讨论】:

    • 您的代码有一个额外的结束 }); 或错过了开幕 ready() 方法
    【解决方案2】:

    @adeneo 说的是正确的。此外,您不应在包含内联花式框内容的元素周围放置隐藏的 div:

    <div id="data1" style="display:none">
    
        TEXT1
    
    </div>
    

    【讨论】:

    • 不同意:实际上,如果使用fancybox 1.3.x,这是正确的语法,请参阅stackoverflow.com/a/3963349/1055987
    • 如果 2.0 已经发布很久了,为什么还要使用 1.3.x?多年来,我一直在使用它而没有这个多余的 div;恕我直言,这绝对不是最佳实践。
    • 人们使用 v1.3.4 而不是 v2.x 的原因是(如果您不知道的话)v1.3.4 在 GPL 许可下可免费用于商业目的,而您需要支付v2.x 的许可证(如果用于商业网站)。更多信息请查看fancyapps.com/fancybox/#license
    • 我有许可证,我没有意识到 1.3.x 是 GPL。很高兴知道,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多