2017-05-09 7 views
0

verwende ich Prestashop 1.6.xx und blocklayred Navigationsmodul zur Filterung der Ergebnisse auf meiner Kategorie Liste Seite und ich möchte die Kategorie Beschreibung verstecken, wenn ich die Ergebnisse filtern ...JQuery Show funktioniert nicht - prestashop

ich habe diesen Code hinzugefügt, und es verbirgt die Kategorie Beschreibung, aber wenn ich deaktivieren sie es nicht die Kategorie Beschreibung zeigt, zurück ...

$(document).ready(function() { 
$('.checkbox').on('change', function() { 
$("#categorydesc").toggle(500); 
}); 
}); 

und dies ist der Code des Moduls

var ajaxQueries = new Array(); 
var ajaxLoaderOn = 0; 
var sliderList = new Array(); 
var slidersInit = false; 

$(document).ready(function() 
{ 
cancelFilter(); 
openCloseFilter(); 

// Click on color 
$(document).on('click', '#layered_form input[type=button], #layered_form label.layered_color', function(e) { 
if (!$('input[name='+$(this).attr('name')+'][type=hidden]').length) 
$('<input />').attr('type', 'hidden').attr('name', $(this).attr('name')).val($(this).data('rel')).appendTo('#layered_form'); 
else 
$('input[name='+$(this).attr('name')+'][type=hidden]').remove(); 
reloadContent(true); 
}); 

$(document).on('click', '#layered_form input[type=checkbox], #layered_form input[type=radio]', function() { 
reloadContent(true); 
}); 

// Doesn't work with document element 
$('body').on('change', '#layered_form .select', function() { 
reloadContent(true); 
}); 

// Changing content of an input text 
$(document).on('keyup', '#layered_form input.layered_input_range', function(e){ 
if ($(this).attr('timeout_id')) 
window.clearTimeout($(this).attr('timeout_id')); 

// IE Hack, setTimeout do not acept the third parameter 
var reference = this; 

$(this).attr('timeout_id', window.setTimeout(function(it){ 
if (!$(it).attr('id')) 
it = reference; 

var filter = $(it).attr('id').replace(/^layered_(.+)_range_.*$/, '$1'); 

var value_min = parseInt($('#layered_'+filter+'_range_min').val()); 
if (isNaN(value_min)) 
value_min = 0; 
$('#layered_'+filter+'_range_min').val(value_min); 

var value_max = parseInt($('#layered_'+filter+'_range_max').val()); 
if (isNaN(value_max)) 
value_max = 0; 
$('#layered_'+filter+'_range_max').val(value_max); 

if (value_max < value_min) { 
$('#layered_'+filter+'_range_max').val($(it).val()); 
$('#layered_'+filter+'_range_min').val($(it).val()); 
} 
reloadContent(); 
}, 500, this)); 
}); 

$(document).on('click', '#layered_block_left .radio', function(e){ 
var name = $(this).attr('name'); 
$.each($(this).parent().parent().find('input[type=button]'), function (it, item) { 
if ($(item).hasClass('on') && $(item).attr('name') != name) 
$(item).click(); 
}); 
return true; 
}); 

// Click on label 
$(document).on('click', '#layered_block_left label:not(.layered_color) a', function(e) { 
e.preventDefault(); 
var disable = $(this).parent().parent().find('input').attr('disabled'); 
if (disable == '' || typeof(disable) == 'undefined' || disable == false) 
{ 
$(this).parent().parent().find('input').click(); 
} 
}); 

layered_hidden_list = {}; 
$('.hide-action').on('click', function(e){ 
if (typeof(layered_hidden_list[$(this).parent().find('ul').attr('id')]) == 'undefined' || layered_hidden_list[$(this).parent().find('ul').attr('id')] == false) 
layered_hidden_list[$(this).parent().find('ul').attr('id')] = true; 
else 
layered_hidden_list[$(this).parent().find('ul').attr('id')] = false; 
hideFilterValueAction(this); 
}); 
$('.hide-action').each(function() { 
hideFilterValueAction(this); 
}); 

$(document).off('change', '.selectProductSort').on('change', '.selectProductSort', function(e) { 
$('.selectProductSort').val($(this).val()); 

if($('#layered_form').length > 0) 
reloadContent('forceSlide'); 
}); 

$(document).off('change', 'select[name="n"]').on('change', 'select[name="n"]', function(e) 
{ 
$('select[name=n]').val($(this).val()); 
reloadContent('forceSlide'); 
}); 

paginationButton(false); 
initLayered(); 
}); 

function initFilters() 
{ 
if (typeof filters !== 'undefined') 
{ 
for (key in filters) 
{ 
if (filters.hasOwnProperty(key)) 
var filter = filters[key]; 

if (typeof filter.slider !== 'undefined' && parseInt(filter.filter_type) == 0) 
{ 
var filterRange = parseInt(filter.max)-parseInt(filter.min); 
var step = filterRange/100; 

if (step > 1) 
    step = parseInt(step); 

addSlider(filter.type, 
{ 
    range: true, 
    step: step, 
    min: parseInt(filter.min), 
    max: parseInt(filter.max), 
    values: [filter.values[0], filter.values[1]], 
    slide: function(event, ui) { 
     stopAjaxQuery(); 

     if (parseInt($(event.target).data('format')) < 5) 
     { 
      from = formatCurrency(ui.values[0], parseInt($(event.target).data('format')), 
       $(event.target).data('unit')); 
      to = formatCurrency(ui.values[1], parseInt($(event.target).data('format')), 
       $(event.target).data('unit')); 
     } 
     else 
     { 
      from = ui.values[0] + $(event.target).data('unit'); 
      to = ui.values[1] + $(event.target).data('unit'); 
     } 

     $('#layered_' + $(event.target).data('type') + '_range').html(from + ' - ' + to); 
    }, 
    stop: function() { 
     reloadContent(true); 
    } 
}, filter.unit, parseInt(filter.format)); 
} 
else if(typeof filter.slider !== 'undefined' && parseInt(filter.filter_type) == 1) 
{ 
$('#layered_' + filter.type + '_range_min').attr('limitValue', filter.min); 
$('#layered_' + filter.type + '_range_max').attr('limitValue', filter.max); 
} 

$('.layered_' + filter.type).show(); 
} 
initUniform(); 
} 
} 

function initUniform() 
{ 
// if (!!$.prototype.uniform) 
//  $("#layered_form input[type='checkbox'], #layered_form input[type='radio'], select.form-control").uniform(); 
} 

function hideFilterValueAction(it) 
{ 
if (typeof(layered_hidden_list[$(it).parent().find('ul').attr('id')]) == 'undefined' 
|| layered_hidden_list[$(it).parent().find('ul').attr('id')] == false) 
{ 
$(it).parent().find('.hiddable').hide(); 
$(it).parent().find('.hide-action.less').hide(); 
$(it).parent().find('.hide-action.more').show(); 
} 
else 
{ 
$(it).parent().find('.hiddable').show(); 
$(it).parent().find('.hide-action.less').show(); 
$(it).parent().find('.hide-action.more').hide(); 
} 
} 

function addSlider(type, data, unit, format) 
{ 
sliderList.push({ 
type: type, 
data: data, 
unit: unit, 
format: format 
}); 
} 

function initSliders() 
{ 
$(sliderList).each(function(i, slider){ 
$('#layered_'+slider['type']+'_slider').slider(slider['data']); 

var from = ''; 
var to = ''; 
switch (slider['format']) 
{ 
case 1: 
case 2: 
case 3: 
case 4: 
from = formatCurrency($('#layered_'+slider['type']+'_slider').slider('values', 0), slider['format'], slider['unit']); 
to = formatCurrency($('#layered_'+slider['type']+'_slider').slider('values', 1), slider['format'], slider['unit']); 
break; 
case 5: 
from = $('#layered_'+slider['type']+'_slider').slider('values', 0)+slider['unit'] 
to = $('#layered_'+slider['type']+'_slider').slider('values', 1)+slider['unit']; 
break; 
} 
$('#layered_'+slider['type']+'_range').html(from+' - '+to); 
}); 
} 

function initLayered() 
{ 
initFilters(); 
initSliders(); 
initLocationChange(); 
updateProductUrl(); 
if (window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '') 
{ 
var params = window.location.href.split('#')[1]; 
reloadContent('&selected_filters='+params); 
} 
} 

function paginationButton(nbProductsIn, nbProductOut) 
{ 
if (typeof(current_friendly_url) === 'undefined') 
current_friendly_url = '#'; 

$('div.pagination a').not(':hidden').each(function() { 

if ($(this).attr('href').search(/(\?|&)p=/) == -1) 
var page = 1; 
else 
var page = parseInt($(this).attr('href').replace(/^.*(\?|&)p=(\d+).*$/, '$2')); 

var location = window.location.href.replace(/#.*$/, ''); 
$(this).attr('href', location + current_friendly_url.replace(/\/page-(\d+)/, '') + '/page-' + page); 
}); 

$('div.pagination li').not('.current, .disabled').each(function() { 
var nbPage = 0; 
if ($(this).hasClass('pagination_next')) 
nbPage = parseInt($('div.pagination li.current').children().children().html())+ 1; 
else if ($(this).hasClass('pagination_previous')) 
nbPage = parseInt($('div.pagination li.current').children().children().html())- 1; 

$(this).children().children().on('click', function(e) 
{ 
e.preventDefault(); 
if (nbPage == 0) 
p = parseInt($(this).html()) + parseInt(nbPage); 
else 
p = nbPage; 
p = '&p='+ p; 
reloadContent(p); 
nbPage = 0; 
}); 
}); 

//product count refresh 
if(nbProductsIn!=false) 
{ 
if(isNaN(nbProductsIn) == 0) 
{ 
// add variables 
var productCountRow = $('.product-count').html(); 
var nbPage = parseInt($('div.pagination li.current').children().children().html()); 
var nb_products = nbProductsIn; 

if ($('#nb_item option:selected').length == 0) 
var nbPerPage = nb_products; 
else 
var nbPerPage = parseInt($('#nb_item option:selected').val()); 

isNaN(nbPage) ? nbPage = 1 : nbPage = nbPage; 
nbPerPage*nbPage < nb_products ? productShowing = nbPerPage*nbPage :productShowing = (nbPerPage*nbPage-nb_products-nbPerPage*nbPage)*-1; 
nbPage==1 ? productShowingStart=1 : productShowingStart=nbPerPage*nbPage-nbPerPage+1; 


//insert values into a .product-count 
productCountRow = $.trim(productCountRow); 
productCountRow = productCountRow.split(' '); 

var backStart = new Array; 
for (row in productCountRow) 
if (parseInt(productCountRow[row]) + 0 == parseInt(productCountRow[row])) 
    backStart.push(row); 

if (typeof backStart[0] !== 'undefined') 
productCountRow[backStart[0]] = productShowingStart; 
if (typeof backStart[1] !== 'undefined') 
productCountRow[backStart[1]] = (nbProductOut != 'undefined') && (nbProductOut > productShowing) ? nbProductOut : productShowing; 
if (typeof backStart[2] !== 'undefined') 
productCountRow[backStart[2]] = nb_products; 

if (typeof backStart[1] !== 'undefined' && typeof backStart[2] !== 'undefined' && productCountRow[backStart[1]] > productCountRow[backStart[2]]) 
productCountRow[backStart[1]] = productCountRow[backStart[2]]; 

productCountRow = productCountRow.join(' '); 
$('.product-count').html(productCountRow); 
$('.product-count').show(); 
} 
else 
$('.product-count').hide(); 
} 
} 

function cancelFilter() 
{ 
$(document).on('click', '#enabled_filters a', function(e){ 
if ($(this).data('rel').search(/_slider$/) > 0) 
{ 
if ($('#'+$(this).data('rel')).length) 
{ 
$('#'+$(this).data('rel')).slider('values' , 0, $('#'+$(this).data('rel')).slider('option' , 'min')); 
$('#'+$(this).data('rel')).slider('values' , 1, $('#'+$(this).data('rel')).slider('option' , 'max')); 
$('#'+$(this).data('rel')).slider('option', 'slide')(0,{values:[$('#'+$(this).data('rel')).slider('option' , 'min'), $('#'+$(this).data('rel')).slider('option' , 'max')]}); 
} 
else if($('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).length) 
{ 
$('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).val($('#'+$(this).data('rel').replace(/_slider$/, '_range_min')).attr('limitValue')); 
$('#'+$(this).data('rel').replace(/_slider$/, '_range_max')).val($('#'+$(this).data('rel').replace(/_slider$/, '_range_max')).attr('limitValue')); 
} 
} 
else 
{ 
if ($('option#'+$(this).data('rel')).length) 
$('#'+$(this).data('rel')).parent().val(''); 
else 
{ 
$('#'+$(this).data('rel')).attr('checked', false); 
$('.'+$(this).data('rel')).attr('checked', false); 
$('#layered_form input[type=hidden][name='+$(this).data('rel')+']').remove(); 
} 
} 
reloadContent(true); 
e.preventDefault(); 
}); 
} 

function openCloseFilter() 
{ 
$(document).on('click', '#layered_form span.layered_close a', function(e) 
{ 
if ($(this).html() == '&lt;') 
{ 
$('#'+$(this).data('rel')).show(); 
$(this).html('v'); 
$(this).parent().removeClass('closed'); 

} 
else 
{ 
$('#'+$(this).data('rel')).hide(); 
$(this).html('&lt;'); 
$(this).parent().addClass('closed'); 
} 

e.preventDefault(); 
}); 
} 

function stopAjaxQuery() { 
if (typeof(ajaxQueries) == 'undefined') 
ajaxQueries = new Array(); 
for(i = 0; i < ajaxQueries.length; i++) 
ajaxQueries[i].abort(); 
ajaxQueries = new Array(); 
} 

function reloadContent(params_plus) 
{ 
stopAjaxQuery(); 

if (!ajaxLoaderOn) 
{ 
$('.product_list').prepend($('#layered_ajax_loader').html()); 
$('.product_list').css('opacity', '0.7'); 
ajaxLoaderOn = 1; 
} 

data = $('#layered_form').serialize(); 
$('.layered_slider').each(function() { 
var sliderStart = $(this).slider('values', 0); 
var sliderStop = $(this).slider('values', 1); 
if (typeof(sliderStart) == 'number' && typeof(sliderStop) == 'number') 
data += '&'+$(this).attr('id')+'='+sliderStart+'_'+sliderStop; 
}); 

$(['price', 'weight']).each(function(it, sliderType) 
{ 
if ($('#layered_'+sliderType+'_range_min').length) 
data += '&layered_'+sliderType+'_slider='+$('#layered_'+sliderType+'_range_min').val()+'_'+$('#layered_'+sliderType+'_range_max').val(); 
}); 

$('#layered_form .select option').each(function() { 
if($(this).attr('id') && $(this).parent().val() == $(this).val()) 
data += '&'+$(this).attr('id') + '=' + $(this).val(); 
}); 

if ($('.selectProductSort').length && $('.selectProductSort').val()) 
{ 
if ($('.selectProductSort').val().search(/orderby=/) > 0) 
{ 
// Old ordering working 
var splitData = [ 
$('.selectProductSort').val().match(/orderby=(\w*)/)[1], 
$('.selectProductSort').val().match(/orderway=(\w*)/)[1] 
]; 
} 
else 
{ 
// New working for default theme 1.4 and theme 1.5 
var splitData = $('.selectProductSort').val().split(':'); 
} 
data += '&orderby='+splitData[0]+'&orderway='+splitData[1]; 
} 
if ($('select[name=n]:first').length) 
{ 
if (params_plus) 
data += '&n=' + $('select[name=n]:first').val(); 
else 
data += '&n=' + $('div.pagination form.showall').find('input[name=n]').val(); 
} 

var slideUp = true; 
if (typeof params_plus === 'undefined' || !(typeof params_plus === 'string')) 
{ 
params_plus = ''; 
slideUp = false; 
} 

// Get nb items per page 
var n = ''; 
if (params_plus) 
{ 
$('div.pagination select[name=n]').children().each(function(it, option) { 
if (option.selected) 
n = '&n=' + option.value; 
}); 
} 
//DONGND:: fix sort not correct at category page 
var data_send = ''; 
if(params_plus == 'forceSlide') 
{ 
data_send = data+n; 
} 
else 
{ 
data_send = data+params_plus+n; 
} 

ajaxQuery = $.ajax(
{ 
type: 'GET', 
url: baseDir + 'modules/blocklayered/blocklayered-ajax.php', 
//DONGND:: fix sort not correct at category page 
data: data_send, 
// data: data+n, 
dataType: 'json', 
cache: false, // @todo see a way to use cache and to add a timestamps parameter to refresh cache each 10 minutes for example 
success: function(result) 
{ 
if (typeof(result) === 'undefined') 
return; 

if (result.meta_description != '') 
$('meta[name="description"]').attr('content', result.meta_description); 

if (result.meta_keywords != '') 
$('meta[name="keywords"]').attr('content', result.meta_keywords); 

if (result.meta_title != '') 
$('title').html(result.meta_title); 

if (result.heading != '') 
$('h1.page-heading .cat-name').html(result.heading); 

$('#layered_block_left').replaceWith(utf8_decode(result.filtersBlock)); 
$('.category-product-count, .heading-counter').html(result.categoryCount); 

if (result.nbRenderedProducts == result.nbAskedProducts) 
$('div.clearfix.selector1').hide(); 

if (result.productList) 
$('.product_list').replaceWith(utf8_decode(result.productList)); 
else 
$('.product_list').html(''); 

$('.product_list').css('opacity', '1'); 
if ($.browser.msie) // Fix bug with IE8 and aliasing 
$('.product_list').css('filter', ''); 

if (result.pagination.search(/[^\s]/) >= 0) 
{ 
var pagination = $('<div/>').html(result.pagination) 
var pagination_bottom = $('<div/>').html(result.pagination_bottom); 

if ($('<div/>').html(pagination).find('#pagination').length) 
{ 
    $('#pagination').show(); 
    $('#pagination').replaceWith(pagination.find('#pagination')); 
} 
else 
    $('#pagination').hide(); 

if ($('<div/>').html(pagination_bottom).find('#pagination_bottom').length) 
{ 
    $('#pagination_bottom').show(); 
    $('#pagination_bottom').replaceWith(pagination_bottom.find('#pagination_bottom')); 
} 
else 
    $('#pagination_bottom').hide(); 
} 
else 
{ 
$('#pagination').hide(); 
$('#pagination_bottom').hide(); 
} 

paginationButton(result.nbRenderedProducts, result.nbAskedProducts); 
ajaxLoaderOn = 0; 

// On submiting nb items form, relaod with the good nb of items 
$('div.pagination form').on('submit', function(e) 
{ 
e.preventDefault(); 
val = $('div.pagination select[name=n]').val(); 

$('div.pagination select[name=n]').children().each(function(it, option) { 
    if (option.value == val) 
     $(option).attr('selected', true); 
    else 
     $(option).removeAttr('selected'); 
}); 

// Reload products and pagination 
reloadContent(); 
}); 
if (typeof(ajaxCart) != "undefined") 
ajaxCart.overrideButtonsInThePage(); 

if (typeof(reloadProductComparison) == 'function') 
reloadProductComparison(); 

filters = result.filters; 
initFilters(); 
initSliders(); 

current_friendly_url = result.current_friendly_url; 

// Currente page url 
if (typeof(current_friendly_url) === 'undefined') 
current_friendly_url = '#'; 

// Get all sliders value 
$(['price', 'weight']).each(function(it, sliderType) 
{ 
if ($('#layered_'+sliderType+'_slider').length) 
{ 
    // Check if slider is enable & if slider is used 
    if (typeof($('#layered_'+sliderType+'_slider').slider('values', 0)) != 'object') 
    { 
     if ($('#layered_'+sliderType+'_slider').slider('values', 0) != $('#layered_'+sliderType+'_slider').slider('option' , 'min') 
     || $('#layered_'+sliderType+'_slider').slider('values', 1) != $('#layered_'+sliderType+'_slider').slider('option' , 'max')) 
      current_friendly_url += '/'+blocklayeredSliderName[sliderType]+'-'+$('#layered_'+sliderType+'_slider').slider('values', 0)+'-'+$('#layered_'+sliderType+'_slider').slider('values', 1) 
    } 
} 
else if ($('#layered_'+sliderType+'_range_min').length) 
    current_friendly_url += '/'+blocklayeredSliderName[sliderType]+'-'+$('#layered_'+sliderType+'_range_min').val()+'-'+$('#layered_'+sliderType+'_range_max').val(); 
}); 

window.location.href = current_friendly_url; 

if (current_friendly_url != '#/show-all') 
$('div.clearfix.selector1').show(); 

lockLocationChecking = true; 

if (slideUp) 
$.scrollTo('.product_list', 400); 
updateProductUrl(); 

$('.hide-action').each(function() { 
hideFilterValueAction(this); 
}); 

if (display instanceof Function) { 
var view = $.totalStorage('display'); 

if (view && view != 'grid') 
    display(view); 
} 

if (typeof leoOption !== 'undefined') { 
var leoCustomAjax = new $.LeoCustomAjax(); 
leoCustomAjax.processAjax(); 
} 
} 
}); 
ajaxQueries.push(ajaxQuery); 
} 

function initLocationChange(func, time) 
{ 
if (!time) 
time = 500; 
var current_friendly_url = getUrlParams(); 
setInterval(function() 
{ 
if(getUrlParams() != current_friendly_url && !lockLocationChecking) 
{ 
// Don't reload page if current_friendly_url and real url match 
if (current_friendly_url.replace(/^#(\/)?/, '') == getUrlParams().replace(/^#(\/)?/, '')) 
return; 

lockLocationChecking = true; 
reloadContent('&selected_filters='+getUrlParams().replace(/^#/, '')); 
} 
else 
{ 
lockLocationChecking = false; 
current_friendly_url = getUrlParams(); 
} 
}, time); 
} 

function getUrlParams() 
{ 
if (typeof(current_friendly_url) === 'undefined') 
current_friendly_url = '#'; 

var params = current_friendly_url; 
if(window.location.href.split('#').length == 2 && window.location.href.split('#')[1] != '') 
params = '#'+window.location.href.split('#')[1]; 
return params; 
} 

function updateProductUrl() 
{ 
// Adding the filters to URL product 
if (typeof(param_product_url) != 'undefined' && param_product_url != '' && param_product_url !='#') { 
$.each($('ul.product_list li.ajax_block_product .product_img_link,'+ 
'ul.product_list li.ajax_block_product h5 a,'+ 
'ul.product_list li.ajax_block_product .product_desc a,'+ 
'ul.product_list li.ajax_block_product .lnk_view'), function() { 
$(this).attr('href', $(this).attr('href') + param_product_url); 
}); 
} 
} 

/** 
* Copy of the php function utf8_decode() 
*/ 
function utf8_decode (utfstr) 
{ 
var res = ''; 
for (var i = 0; i < utfstr.length;) { 
var c = utfstr.charCodeAt(i); 

if (c < 128) 
{ 
res += String.fromCharCode(c); 
i++; 
} 
else if((c > 191) && (c < 224)) 
{ 
var c1 = utfstr.charCodeAt(i+1); 
res += String.fromCharCode(((c & 31) << 6) | (c1 & 63)); 
i += 2; 
} 
else 
{ 
var c1 = utfstr.charCodeAt(i+1); 
var c2 = utfstr.charCodeAt(i+2); 
res += String.fromCharCode(((c & 15) << 12) | ((c1 & 63) << 6) | (c2 & 63)); 
i += 3; 
} 
} 
return res; 
} 

Antwort

0

Versuchen Sie mit diesem Code, der erkennt, wenn sich die Seite entsprechend den Filtern ändert, wenn es Filter gibt, dann wählen Sie die Beschreibung aus, ansonsten wird sie angezeigt.

Grüße,

$('#').bind("DOMSubtreeModified",function(){ 
    if ($('#enabled_filters').length) { 
     $("#categorydesc").hide(); 
    } else {   
     $("#categorydesc").show(); 
    } 
}); 

Edit:

$('.product_list').bind("DOMSubtreeModified",function(){ 
     if ($('#enabled_filters').length) { 
      $("#categorydesc").hide(); 
     } else {   
      $("#categorydesc").show(); 
     } 
    }); 
+0

Vielen Dank für Ihre Hilfe, aber nicht funktioniert ... –

+0

Wenn nicht ich die URL Ihrer Website geben, dass ich auf Ihre Website anpassen. – ethercreation

Verwandte Themen