2016-06-13 12 views
0

これはなぜもう機能していないのか理解しようとしています。クリックしても機能しない - jquery

.on(クリック)は一切起動しません。私はconsole.logを試みました、アラート、何も動作していません。私はこれを見るために2番目の目が必要です。

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'); 
}); 

あなたの助けをいただき、ありがとうございます。

+5

お願い、HTMLコード –

答えて

0

あなたが最後に});不足しているのonclick関数を定義ブロック - それは次のようになります。

$('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

ありがとう!私はもう別の問題を抱えていますが、私はそれを別の質問で掲示します。 – yondaimehokage

0

まず、(あなたはクリックで上げるループ結果)あなたのクラスセレクタをチェック。それが何かを返すと確信していますか?あなたのセレクタで選択された各要素のクリックをオンにする必要があります。何も返されない場合は、クリックしないとエラーが発生しないようにしてください。

関連する問題