首页 > 解决方案 > 在 if 语句中的其他块内调用 php 块

问题描述

我有问题。使用 swiper.js 控制箭头

<?= ($block->getData('controls') == "1") ? '<div class="swiper-button-prev swiper-button-prev-slide-<?= $_uniqid ?>"></div>
            <div class="swiper-button-next swiper-button-next-slide-<?=$_uniqid?>"></div>':'<div class="swiper-button-next swiper-button-hidden"></div>
            <div class="swiper-button-prev swiper-button-hidden"></div>'?>

我使用此代码检索使这两个 div 出现的值 1,如果值为 0,则出现其他两个 div。它运作良好,但在控件等于 1 的情况下,我的箭头不起作用,它们只是出现,但我无法与它们交互,这就是为什么

navigation: {
                nextEl: '.swiper-button-next.swiper-button-next-slide-<?= $_uniqid ?>',
                prevEl: '.swiper-button-prev.swiper-button-prev-slide-<?= $_uniqid ?>',
            },

这是我的 swipper 对象与箭头的交互可能。如您所见, nextEl 和 prevEl 值与 div 类相同。我认为问题出在 uniqid 中,因为在 php 块内的类中没有正确读取

标签: phpswiper

解决方案


您的代码中似乎有语法错误。请参阅下面的更新代码。

    <?= ($block->getData('controls') == "1") ? '<div class="swiper-button-prev swiper-button-prev-slide-'.$_uniqid.'"></div>
<div class="swiper-button-next swiper-button-next-slide-'.$_uniqid.'"></div>':'<div class="swiper-button-next swiper-button-hidden"></div>
<div class="swiper-button-prev swiper-button-hidden"></div>'?>

推荐阅读