2016-06-13 15 views
0

Ich bin verrückt zu versuchen herauszufinden, warum das nicht mehr funktioniert.Auf Klick funktioniert nicht - Jquery

Die .on (click) feuert überhaupt nicht. Ich habe versucht, console.log, Warnungen, nichts funktioniert. Ich brauche ein zweites Paar Augen, um mir das anzusehen.

JS:

var $gridStore; 
$(document).ready(function() { 

    $('[data-toggle="popover"]').popover(); 

    //testing 
    var currentPage = document.location.href; 

    if (currentPage.match(/outfits\/$/) || currentPage.match(/outfits\/[a-z-#]+$/)) { 
     if ($(window).width() > 992) { 
      $('div#side-nav').show(); 
     } else { 
      $('div#side-nav-mb').show(); 
     } 
     $('ul#letter-subcategories').hide(); 
     $('ul li.main-nav').removeClass('active'); 
     $('li#menu-outfits').addClass('active'); 
    } else if (currentPage.match(/outfits\/[a-z-]+/)) { 
     $('div#side-nav-mb').hide(); 
     $('div#side-nav').hide(); 
     $('ul#letter-subcategories').hide(); 
     $('ul li.main-nav').removeClass('active'); 
     $('li#menu-outfits').addClass('active'); 
    } else if (currentPage.match(/directory/)) { 
     $('div#side-nav-mb').hide(); 
     $('div#side-nav').hide(); 
     $('ul#letter-subcategories').show(); 
     $('ul li.main-nav').removeClass('active'); 
     $('li#store-directory').addClass('active'); 
    } else if (currentPage.match(/magazine/)) { 
     $('div#side-nav-mb').hide(); 
     $('div#side-nav').hide(); 
     $('ul#letter-subcategories').hide(); 
     $('ul li.main-nav').removeClass('active'); 
     $('li#magazine').addClass('active'); 
    } else if (currentPage.match(/models/)) { 
     $('div#side-nav-mb').hide(); 
     $('div#side-nav').hide(); 
     $('ul#letter-subcategories').hide(); 
     $('ul li.main-nav').removeClass('active'); 
     $('li#models').addClass('active'); 
    } else { 
     $('div#side-nav-mb').hide(); 
     $('div#side-nav').hide(); 
     $('ul#letter-subcategories').hide(); 
     $('ul li.main-nav').removeClass('active'); 
    } 

    //initialize isotope 
    $gridStore = $('#store-listings'); 
    $gridStore.isotope({ 
     itemSelector: '.store-listing-item', 
     masonry: { 
      columnWidth: '.store-listing-item' 
     } 
    }); 

    $('div.row').has($('div.carousel')).css('margin-left', '-15px'); 
    $('div.row').has($('div.carousel')).css('margin-right', '-15px'); 
}); 

$(window).load(function() { 
    var $grid = $('#outfits'); 
    $grid.isotope({ 
     itemSelector: '.outfit-item', 
     layoutMode: 'fitRows', 
     filter: '*' 
    }); 
    $grid.imagesLoaded().progress(function() { 
     $grid.isotope('layout'); 
    }); 
}); 

$('ul.store-subcats li.subfilter a').each(function() { 
    var clickedFilter; 
    $gridStore = $('#store-listings'); 
    $(this).on('click', function() { 
    clickedFilter = $(this).attr('data-filter'); 
    alert('i am clicked' + clickedFilter); 
    if (clickedFilter !== '*') { 
     clickedFilter = clickedFilter + ', .stamp'; 
    } 
    $gridStore.isotope({ filter: clickedFilter }); 
    location.hash = encodeURIComponent(clickedFilter.replace(/.(number-|letter-)/i, '').replace(/, .stamp/i, '')); 
    $('ul.store-subcats li.subfilter').removeClass('active'); 
    $(this).parent().addClass('active'); 
}); 
//$('span.how-many-stores').text(); 
var isIsotopeInit = false; 
function onHashchange() { 
    var hashFilter = getHashFilter(); 
    var newFilter; 
    if (!hashFilter && isIsotopeInit) { 
     return; 
    } 
    isIsotopeInit = true; 
    if (hashFilter == 'number') { 
     newFilter = '.number-' + hashFilter; 
    } else { 
     newFilter = '.letter-' + hashFilter; 
    } 
    // filter isotope 
    $gridStore.isotope({ 
     itemSelector: '.store-listing-item', 
     masonry: { 
      columnWidth: '.col-md-12' 
     }, 
     filter: newFilter + ', .stamp' 
    }); 
} 
$(window).on('hashchange', onHashchange); 
// trigger event handler to init Isotope 
onHashchange(); 
}); 
$('ul.store-subcats li.letter-all a').on('click', function() { 
    $gridStore = $('#store-listings'); 
    $gridStore.isotope({ filter: '*' }); 
    removeHash(); 
    $('ul.store-subcats li.subfilter').removeClass('active'); 
    $(this).parent().addClass('active'); 
}); 

Vielen Dank für Ihre Hilfe.

+5

Bitte senden Sie Ihren HTML-Code –

Antwort

0

Der Block, in dem Sie die OnClick-Funktionen definieren ein }); am Ende fehlt - es ist etwas sollte wie folgt aussehen:

$('ul.store-subcats li.subfilter a').each(function() { 
    var clickedFilter; 
    $gridStore = $('#store-listings'); 
    $(this).on('click', function() { 
    clickedFilter = $(this).attr('data-filter'); 
    alert('i am clicked' + clickedFilter); 
    if (clickedFilter !== '*') { 
     clickedFilter = clickedFilter + ', .stamp'; 
    } 
    $gridStore.isotope({ filter: clickedFilter }); 
    location.hash = encodeURIComponent(clickedFilter.replace(/.(number-|letter-)/i, '').replace(/, .stamp/i, '')); 
    $('ul.store-subcats li.subfilter').removeClass('active'); 
    $(this).parent().addClass('active'); 
    }); 
}); 
+0

Vielen Dank! Ich habe jetzt ein anderes Problem, aber ich werde das in einer separaten Frage veröffentlichen. – yondaimehokage

0

überprüfen Sie zunächst Ihre Klassenauswahl (Loop Ergebnis in dem Sie die auf Klick erhöhen) . Bist du sicher, dass es etwas zurückgibt? Der On-Klick sollte für jedes Element, das von Ihrem Selektor ausgewählt wurde, ausgelöst werden, wenn es nichts zurückgibt, sicher, dass beim Klicken nie passieren

Verwandte Themen