【问题标题】:Using jQuery in Prestashop CMS page在 Prestashop CMS 页面中使用 jQuery
【发布时间】:2012-12-28 20:50:39
【问题描述】:

我正在尝试在 CMS 页面中使用一些代码,我将这些代码放在了我在 Prestashop Backoffice 中创建的 CMS 页面中实现的 html 代码的末尾,但是,该代码的一部分工作但其余代码不起作用,不知道为什么。

所以基本上我有一个带有列表的页面和列表中每个项目内的一些 div。因此,使用 jQuery,我隐藏了所有 DIV(并且这个特定部分有效),然后在我单击的每个项目中,我都有一个 jQuery 函数来切换下面 DIV 的可见性。所以问题就在这里,那段代码好像不行,我也不知道为什么。

<h1>Cursos Magic Nails</h1>
<p>Temos um vasto leque de ofertas formativas à sua espera. Escolha um dos links abaixo e veja a nossa oferta formativa.</p>
<ul id="portefolio">
<li><img name="" src="" width="256" height="200" alt="" />Unhas
<div class="infos">
<h3>Cursos de Unhas de Gel e Acrílico</h3>
<ul>
     <li>Curso de Técnicas de Unhas de Gel</li>
        <li>Designer de Unhas de Gel</li>
        <li>Curso de Art-Nail</li>
        <li>Reciclagem para Profissionais</li>
</ul>
<ul>
     <li>Curso de Acrílico</li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Manicure/Pedicure
<div class="infos">
<h3>Cursos de Manicure/Pedicure</h3>
<ul>
     <li>Curso de Manicure</li>
        <li>Curso de Pedicure</li>
        <li>Pack 3 Cursos (Manicure/Pedicure e Depilação)</li>
        <li>Curso 3 em 1<span>PROMO</span></li>
        <li>Manicure e Pedicure<span>PROMO</span></li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Pestanas
<div class="infos"> 
<h3>Cursos de Pestanas</h3>
<ul>
<li>Curso de Alongamento de Pestanas<span>NOVO</span></li>
<li>Curso de Permanente de Pestanas<span>NOVO</span></li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Depilação
<div class="infos">
<h3>Cursos de Depilação</h3>
<ul>
<li>Curso de Depilação</li>
<li>Curso de Depilação com Linha<span>NOVO</span></li>
<li>Curso de Depilação<span>PROMO</span></li>
</ul>
<ul>
<li>Pack 3 Cursos</li>
<li>Curso 3 em 1<span>PROMO</span></li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Massagens
<div class="infos">
<h3>Cursos de Massagens</h3>
<ul>
<li>Curso de Massagens de Relaxamento</li>
<li>Curso de Massagens das Pedras Quentes</li>
<li>Curso de Massagens de Estética</li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Rosto
<div class="infos">
<h3>Cursos de Rosto</h3>
<ul>
<li>Curso de Rosto</li>
</ul>
</div>
</li>
<li><img name="" src="" width="256" height="200" alt="" />Glitter Tattoo
<div class="infos">
<h3>Cursos de Glitter Tattoo</h3>
<ul>
<li>Curso de Glitter Tattoo</li>
</ul>
</div>
</li>
</ul>

以及页面中嵌入的jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        //Hide that DIV
        $('#page #portefolio li .infos').hide(); //Hide/close all containers


        //On Click
        $('#page #portefolio li').click(function(){
            //If immediate next container is closed...
            if($(this).parent('#page #portefolio li .infos').is(':hidden')){ 
                $('#page #portefolio li').removeClass('active').parent('#page #portefolio li .infos').slideUp();
                $(this).addClass('active').parent('#page #portefolio li .infos').slideDown();   
            } else {
                $(this).removeClass('active').parent('#page #portefolio li .infos').slideUp();
            }
            return false; //Prevent the browser jump to the link anchor
        });
    });
</script>

所以上面的部分 //On Click 是不起作用的部分。

您可以在此链接中进行测试: Link

【问题讨论】:

    标签: jquery content-management-system prestashop


    【解决方案1】:

    您的主要问题是您寻找正确.infos div 的方式。 jQuery 有非常优雅的遍历方法,可以让这变得简单很多。

    这是一个活生生的例子:http://jsfiddle.net/WbUPt/1/

    // Cache your jQuery selector... you don't need to find it over and over again
    var $portefolio = $('#portefolio');
    
    // Hide / close all containers
    $portefolio.find('.infos').hide(); 
    
    // Add a single event to the container for better performance
    $portefolio.on('click', 'li', function (event) {
    
        var $this = $(event.currentTarget);
    
        if ($this.hasClass('active')) {
    
            // Deactivate
            $this.removeClass('active');
            $this.find('.infos').slideUp();
    
        } else {
    
            // Activate
            $this.addClass('active');
            $this.find('.infos').slideDown();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多