【问题标题】:How to make a popup open for an individual slide rather than all of them at the same time on click?如何在单击时为单个幻灯片打开弹出窗口,而不是同时打开所有幻灯片?
【发布时间】:2020-06-11 11:07:38
【问题描述】:

使用 php,我创建了几个弹出窗口,我希望在单击任何幻灯片的按钮后出现。模态(简化)看起来像这样

@foreach($products as $key => $product)
            <div class="popup">
              <div>content</div>
            </div>
@endforeach

之后会生成不同的产品幻灯片

@foreach($products as $key => $product)
            <div class="item">
              <div>content</div>
<span class="Open">Button</span>
            </div>
@endforeach

在此之后,我运行一个简单的脚本,在按钮单击时显示模式

$(document).on ('click','.Open', function () {
            $('.popup').removeClass('display-none').addClass('d-flex').hide().fadeIn();
        });

这部分有效,单击时会出现模态,但是,我的问题是所有模态同时出现。有没有办法让它在单击其按钮时只显示与特定产品相关联的模式,而不是全部显示?

非常感谢!

【问题讨论】:

    标签: javascript php html jquery css


    【解决方案1】:

    首先需要在弹出窗口和按钮之间创建链接,如下所示

    @foreach($products as $key => $product)
                <div class="popup" id="popup{{$key}}">
                  <div>content</div>
                </div>
    @endforeach
    
    
    @foreach($products as $key => $product)
                <div class="item">
                  <div>content</div>
    <span class="Open" data-id="{{$key}}">Button</span>
                </div>
    @endforeach
    
    

    现在您可以链接到按钮和弹出窗口

    $(document).on ('click','.Open', function () {
    var $el = $(this);
    
    $('#popup'+$el.data('id')).removeClass('display-none').addClass('d-flex').hide().fadeIn();
            });
    

    希望这会有所帮助

    【讨论】:

    • 抱歉回复晚了!这个答案就像一个魅力,感谢你的时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多