Hy there!

I have the following thing that I need to solve:
In the Menu I have the Parrent Category Name and inside are 7 categories for food....
If I click on the menu on the parent category name it send me to the home page and open the menu. I need to block this...
I only need to open the categories inside it....I want to work only on hover...

Please see the details here: ( The parent category name is : Masa de pranz )
http://testing.apetit-catering.ro/

Thank you very much!

I can offer a money reward:)

CSS option:

.sfHover > a:first-child { pointer-events: none }

jQuery option:

$('.sfHover a').first().click(function(e) {
    e.preventDefault()
});

The CSS option will only work in browsers that supports the pointer-events property, but with both options I'm not sure if you'll get into trouble on touch screen devices, because you might need that click to reveal the submenu on them.

Where do I set them?

If you choose option 1 then this will go in a CSS file and if you choose the second option this into a JS file. I had a look and all your CSS and JS files are minified, so I don't know if you can add one of the options to a custom CSS or JS file which you can access easily.
I don't have eperience with Prestashop themes, so I'm not sure how custom CSS/JS works within this e-commerce solution.

I disabled the cache system...can you please take a look?
I don`t know where to insert what you gave me...

If you have access to the global.css file, then drop the CSS option in there somewhere.

I used .sfHover > a:first-child { pointer-events: none } and dropped into global css but I doesn`t work...Is the code okay?
How can we try the second code?Where should we drop it?

I see now that that anchor tag has it's own classname, so try this in your CSS:

.sf-with-ul { pointer-events: none }

Yey! It work perfect on my computer but on touch screen I have the same problem.... How can we fix this too?Where do we have to insert the

$('.sfHover a').first().click(function(e) {
    e.preventDefault()
});

You could try to put this in global.js at the bottom

$('.sf-with-ul').click(function(e) {
    e.preventDefault()
});

Thank you very much!

How can I fix this too?

In product list - list mode, I have the product with the ingredients and on the second row I want to put the nutritional facts but the line goes on the first line just after the ingredients.... If I enter the product page everything is fine but on the product list it shows me something else....
Here is the screenshot...Click Here
Please also check Click Here and click on the list view and to compare with the screenshot.

Mark this thread as solved! I will look for your other issue and will reply on the original thread.

I thought it works the code after I dropped at the final global.js but for touch screen is not working....
Any other advice?

$('.sf-with-ul').click(function(e) {
    e.preventDefault()
});

This is all the content from global.js. Where should I drop the code?

/*

* 2007-2014 PrestaShop

*

* NOTICE OF LICENSE

*

* This source file is subject to the Academic Free License (AFL 3.0)

* that is bundled with this package in the file LICENSE.txt.

* It is also available through the world-wide-web at this URL:

* http://opensource.org/licenses/afl-3.0.php

* If you did not receive a copy of the license and are unable to

* obtain it through the world-wide-web, please send an email

* to license@prestashop.com so we can send you a copy immediately.

*

* DISCLAIMER

*

* Do not edit or add to this file if you wish to upgrade PrestaShop to newer

* versions in the future. If you wish to customize PrestaShop for your

* needs please refer to http://www.prestashop.com for more information.

*

*  @author PrestaShop SA <contact@prestashop.com>

*  @copyright  2007-2014 PrestaShop SA

*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)

*  International Registered Trademark & Property of PrestaShop SA

*/

//global variables

var responsiveflag = false;



$(window).load(function() 

{ 

    $(".loadingdiv").removeClass("spinner"); 

})



$(document).ready(function(){

    highdpiInit();

    responsiveResize();

    $(window).resize(responsiveResize);

    if (navigator.userAgent.match(/Android/i))

    {

        var viewport = document.querySelector('meta[name="viewport"]');

        viewport.setAttribute('content', 'initial-scale=1.0,maximum-scale=1.0,user-scalable=0,width=device-width,height=device-height');

        window.scrollTo(0, 1);

    }

    if (typeof quickView !== 'undefined' && quickView)

        quick_view();

    dropDown();



    if (typeof page_name != 'undefined' && !in_array(page_name, ['index', 'product']))

    {

        bindGrid();



        $(document).on('change', '.selectProductSort', function(e){

            if (typeof request != 'undefined' && request)

                var requestSortProducts = request;

            var splitData = $(this).val().split(':');

            var url = '';

            if (typeof requestSortProducts != 'undefined' && requestSortProducts)

            {

                url += requestSortProducts ;

                if (typeof splitData[0] !== 'undefined' && splitData[0])

                {

                    url += ( requestSortProducts.indexOf('?') < 0 ? '?' : '&') + 'orderby=' + splitData[0] + (splitData[1] ? '&orderway=' + splitData[1] : '');

                    if (typeof splitData[1] !== 'undefined' && splitData[1])

                        url += '&orderway=' + splitData[1];

                }

                document.location.href = url;

            }

        });



        $(document).on('change', 'select[name="n"]', function(){

            $(this.form).submit();

        });



        $(document).on('change', 'select[name="currency_payment"]', function(){

            setCurrency($(this).val());

        });

    }



    $(document).on('change', 'select[name="manufacturer_list"], select[name="supplier_list"]', function(){

        if (this.value != '')

            location.href = this.value;

    });



    $(document).on('click', '.back', function(e){

        e.preventDefault();

        history.back();

    });



    jQuery.curCSS = jQuery.css;

    if (!!$.prototype.cluetip)

        $('a.cluetip').cluetip({

            local:true,

            cursor: 'pointer',

            dropShadow: false,

            dropShadowSteps: 0,

            showTitle: false,

            tracking: true,

            sticky: false,

            mouseOutClose: true,

            fx: {

                open:       'fadeIn',

                openSpeed:  'fast'

            }

        }).css('opacity', 0.8);



    if (typeof(FancyboxI18nClose) !== 'undefined' && typeof(FancyboxI18nNext) !== 'undefined' && typeof(FancyboxI18nPrev) !== 'undefined' && !!$.prototype.fancybox)

        $.extend($.fancybox.defaults.tpl, {

            closeBtn : '<a title="' + FancyboxI18nClose + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',

            next     : '<a title="' + FancyboxI18nNext + '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',

            prev     : '<a title="' + FancyboxI18nPrev + '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'

        });



    // Close Alert messages

    $(".alert.alert-danger").on('click', this, function(e){

        if (e.offsetX >= 16 && e.offsetX <= 39 && e.offsetY >= 16 && e.offsetY <= 34)

            $(this).fadeOut();

    });

    });



function highdpiInit()

{

    if (typeof highDPI === 'undefined')

        return;

    if(highDPI && $('.replace-2x').css('font-size') == "1px")

    {

        var els = $("img.replace-2x").get();

        for(var i = 0; i < els.length; i++)

        {

            src = els[i].src;

            extension = src.substr( (src.lastIndexOf('.') +1) );

            src = src.replace("." + extension, "2x." + extension);



            var img = new Image();

            img.src = src;

            img.height != 0 ? els[i].src = src : els[i].src = els[i].src;

        }

    }

}



function scrollCompensate() 

{

    var inner = document.createElement('p');

    inner.style.width = "100%";

    inner.style.height = "200px";



    var outer = document.createElement('div');

    outer.style.position = "absolute";

    outer.style.top = "0px";

    outer.style.left = "0px";

    outer.style.visibility = "hidden";

    outer.style.width = "200px";

    outer.style.height = "150px";

    outer.style.overflow = "hidden";

    outer.appendChild(inner);



    document.body.appendChild(outer);

    var w1 = inner.offsetWidth;

    outer.style.overflow = 'scroll';

    var w2 = inner.offsetWidth;

    if (w1 == w2) w2 = outer.clientWidth;



    document.body.removeChild(outer);



    return (w1 - w2);

}







function responsiveResize(){

    compensante = scrollCompensate();

    if (($(window).width()+scrollCompensate()) <= 767 && responsiveflag == false)

    {

        accordion('enable');

        accordionFooter('enable');

        accordionLink('enable');

        responsiveflag = true;

    }

    else if (($(window).width()+scrollCompensate()) >= 768)

    {

        accordion('disable');

        accordionFooter('disable');

        accordionLink('disable');

        responsiveflag = false;

        if (typeof bindUniform !=='undefined')

        bindUniform();

    }

    blockHover();

}



function blockHover(status){

    //alert($('body').find('.container').width());

    var screenLg = $('body').find('.container').width() == 1000;



    if (screenLg)

        $('.product_list .button-container').hide();

    else

        $('.product_list .button-container').show();



    $(document).off('mouseenter').on('mouseenter', '.product_list.grid li.ajax_block_product .product-container,ul.tm-carousel li.item .product-container', function(e){

        if (screenLg)

        {

            var pcHeight = $(this).parent().outerHeight();

            var pcPHeight = $(this).parent().find('.button-container').outerHeight() + $(this).parent().find('.comments_note').outerHeight() + $(this).parent().find('.functional-buttons').outerHeight();

            $(this).parent().addClass('hovered');

            $(this).find('.button-container').show();

        }

    });



    $(document).off('mouseleave').on('mouseleave', '.product_list.grid li.ajax_block_product .product-container,ul.tm-carousel li.item .product-container', function(e){

        if (screenLg)

        {

            $(this).parent().removeClass('hovered');

            $(this).find('.button-container').hide();

        }

    });

}

function quick_view()

    {

    $(document).on('click', '.quick-view:visible, .quick-view-mobile:visible', function(e){

        e.preventDefault();

        var url = this.rel;

        var anchor = '';



        if (url.indexOf('#') != -1)

        {

            anchor = url.substring(url.indexOf('#'), url.length);

            url = url.substring(0, url.indexOf('#'));

        }



        if (url.indexOf('?') != -1)

            url += '&';

        else

            url += '?';



        if (!!$.prototype.fancybox)

            $.fancybox({

                'padding':  0,

                'width':    1087,

                'height':   610,

                'type':     'iframe',

                'href':     url + 'content_only=1' + anchor

            });

    });

    }



function bindGrid()

{

    var storage = false;

    if (typeof(getStorageAvailable) !== 'undefined') {

        storage = getStorageAvailable();

    }

    if (!storage) {

        return;

    }



    var view = $.totalStorage('display');



    if (!view && (typeof displayList != 'undefined') && displayList)

        view = 'list';



    if (view && view != 'grid')

        display(view);

    else

        $('.display').find('li#grid').addClass('selected');



    $(document).on('click', '#grid', function(e){

        e.preventDefault();

        display('grid');

    });



    $(document).on('click', '#list', function(e){

        e.preventDefault();

        display('list');

    });

}

function display(view)

{

    if (view == 'list')

    {

        $('ul.product_list').removeClass('grid').addClass('list row');

        $('.product_list > li').removeClass('col-xs-12 col-sm-6 col-md-4').addClass('col-xs-12');

        $('.product_list > li').each(function(index, element) {

            var html = '';

            html = '<div class="product-container"><div class="row">';

                html += '<div class="left-block col-xs-4 col-xs-5 col-md-4">' + $(element).find('.left-block').html() + '</div>';

                html += '<div class="center-block col-xs-5 col-xs-7 col-md-5">';



                    html += '<h5 itemprop="name">'+ $(element).find('h5').html() + '</h5>';

                    var hookReviews = $(element).find('.hook-reviews');

                    if (hookReviews.length) {

                        html += hookReviews.clone().wrap('<div>').parent().html();

                    }

                    html += '<p class="product-desc">'+ $(element).find('.product-desc').html() + '</p>';

                    var colorList = $(element).find('.color-list-container').html();

                    if (colorList != null) {

                        html += '<div class="color-list-container">'+ colorList +'</div>';

                    }

                    var availability = $(element).find('.availability').html(); // check : catalog mode is enabled

                    if (availability != null) {

                        html += '<span class="availability">'+ availability +'</span>';

                    }

                html += '</div>';    

                html += '<div class="right-block col-xs-3 col-xs-7 col-md-3"><div class="right-block-content row">';

                    var price = $(element).find('.content_price').html();       // check : catalog mode is enabled

                    if (price != null) { 

                        html += '<div class="content_price col-xs-5 col-md-12">'+ price + '</div>';

                    }

                    html += '<p class="product_reference">'+ $(element).find('.product_reference').html() + '</p>';

                    html += '<p class="product_weight">'+ $(element).find('.product_weight').html() + '</p>';

                    html += '<div class="functional-buttons clearfix col-sm-12">' + $(element).find('.functional-buttons').html() + '</div>';

                    html += '<div class="product-flags">'+ $(element).find('.product-flags').html() + '</div>';

                    html += '<div class="button-container col-xs-7 col-md-12">'+ $(element).find('.button-container').html() +'</div>';

                html += '</div>';

            html += '</div></div>';

        $(element).html(html);

        });     

        $('.display').find('li#list').addClass('selected');

        $('.display').find('li#grid').removeAttr('class');

        $.totalStorage('display', 'list');

    }

    else 

    {

        $('ul.product_list').removeClass('list').addClass('grid row');

        $('.product_list > li').removeClass('col-xs-12').addClass('col-xs-12 col-sm-6 col-md-4');

        $('.product_list > li').each(function(index, element) {

        var html = '';

        html += '<div class="product-container">';

            html += '<div class="left-block">' + $(element).find('.left-block').html() + '</div>';

            html += '<div class="right-block">';

                html += '<div class="product-flags">'+ $(element).find('.product-flags').html() + '</div>';

                html += '<h5 itemprop="name">'+ $(element).find('h5').html() + '</h5>';

                html += '<p class="product_reference">'+ $(element).find('.product_reference').html() + '</p>';

                html += '<p class="product_weight">'+ $(element).find('.product_weight').html() + '</p>';

                var hookReviews = $(element).find('.hook-reviews');

                if (hookReviews.length) {

                    html += hookReviews.clone().wrap('<div>').parent().html();

                }



                html += '<p itemprop="description" class="product-desc">'+ $(element).find('.product-desc').html() + '</p>';



                var colorList = $(element).find('.color-list-container').html();

                if (colorList != null) {

                    html += '<div class="color-list-container">'+ colorList +'</div>';

                }

                var availability = $(element).find('.availability').html(); // check : catalog mode is enabled

                if (availability != null) {

                    html += '<span class="availability">'+ availability +'</span>';

                }

            html += '</div>';

            html += '<div class="functional-buttons clearfix">' + $(element).find('.functional-buttons').html() + '</div>';

            var price = $(element).find('.content_price').html(); // check : catalog mode is enabled

                    if (price != null) { 

                        html += '<div class="content_price">'+ price + '</div>';

                    }

                html += '<div itemprop="offers" itemscope itemtype="https://schema.org/Offer" class="button-container">'+ $(element).find('.button-container').html() +'</div>';

        html += '</div>';        

        $(element).html(html);

        });

        $('.display').find('li#grid').addClass('selected');

        $('.display').find('li#list').removeAttr('class');

        $.totalStorage('display', 'grid');

    }   

}



function dropDown() 

{

    elementClick = '#header .current';

    elementSlide =  'ul.toogle_content';       

    activeClass = 'active';          



    $(elementClick).on('click', function(e){

        e.stopPropagation();

        var subUl = $(this).next(elementSlide);

        if(subUl.is(':hidden'))

        {

            subUl.slideDown();

            $(this).addClass(activeClass);  

        }

        else

        {

            subUl.slideUp();

            $(this).removeClass(activeClass);

        }

        $(elementClick).not(this).next(elementSlide).slideUp();

        $(elementClick).not(this).removeClass(activeClass);

        e.preventDefault();

    });



    $(elementSlide).on('click', function(e){

        e.stopPropagation();

    });



    $(document).on('click', function(e){

        e.stopPropagation();

        var elementHide = $(elementClick).next(elementSlide);

        $(elementHide).slideUp();

        $(elementClick).removeClass('active');

    });

}



function accordionFooter(status)

{

    if(status == 'enable')

    {

        $('#footer .footer-block h4').on('click', function(e){

            $(this).toggleClass('active').parent().find('.toggle-footer').stop().slideToggle('medium');

            e.preventDefault();

        })

        $('#footer').addClass('accordion').find('.toggle-footer').slideUp('fast');

    }

    else

    {

        $('.footer-block h4').removeClass('active').off().parent().find('.toggle-footer').removeAttr('style').slideDown('fast');

        $('#footer').removeClass('accordion');

    }

}

function accordion(status)

    {

        if(status == 'enable')

        {

            var accordion_selector = '#right_column .block .title_block, #left_column .block .title_block, #left_column #newsletter_block_left h4,' +

                                    '#left_column .shopping_cart > a:first-child, #right_column .shopping_cart > a:first-child';



            $(accordion_selector).on('click', function(e){

                $(this).toggleClass('active').parent().find('.block_content').stop().slideToggle('medium');

            });

            $('#right_column, #left_column').addClass('accordion').find('.block .block_content').slideUp('fast');

            $('#center_column').addClass('accordion');

            if (typeof(ajaxCart) !== 'undefined')

                ajaxCart.collapse();

        }

        else

        {

            $('#right_column .block .title_block, #left_column .block .title_block, #left_column #newsletter_block_left h4').removeClass('active').off().parent().find('.block_content').removeAttr('style').slideDown('fast');

            $('#left_column, #right_column').removeClass('accordion');

            $('#center_column').removeClass('accordion');

        }

    }





function accordionLink(status)

{

    if(status == 'enable')

    {

        $('.header_permentlink div.tm_permenu_inner').on('click', function(){

            $(this).toggleClass('active').parent().find('#header_links').stop().slideToggle('medium');

        })

        $('.header_permentlink').addClass('accordion').find('#header_links').slideUp('fast');

    }

    else

    {

        $('.header_permentlink div.tm_permenu_inner').removeClass('active').off().parent().find('#header_links').removeAttr('style').slideDown('fast');

        $('.header_permentlink').removeClass('accordion');

    }

}



function bindUniform()

{

    if (!!$.prototype.uniform)

        $("select.form-control,input[type='radio'],input[type='checkbox']").not(".not_uniform").uniform();

}

If you try and test with the jQuery option, then delete the CSS option. I mean don't use them together and see what it does on touch screen.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.