我正在制作一个投资组合页面,并正在使用“Isotope.js”来完成所有繁重的工作......但是,我正试图将过滤器放在一个下拉列表中以实现移动兼容性并且正在碰壁.
我使用“数据过滤器”作为<option />
' 值而不是“href”;但是每次您单击一个时,它不会像应有的那样进行过滤,而是尝试将您重定向到名称为“数据过滤器”的页面。
这是按钮的 php
<nav id="filters">
<ul>
<li class="active"><a data-filter="*">All</a></li>
<?php
global $args;
$terms = get_terms( 'filter', $args );
$count = count( $terms );
$i = 0;
$term_list = '';
foreach ( $terms as $term ) {
$i++;
$term_list .= '<li><a data-filter=".'. $term->slug .'">'. $term->name .'</a></li>';
}
echo $term_list;
?>
</ul>
</nav>
大脑,JS...
// filter buttons
jQuery( '#filters a, #filter-drop option' ).click( function() {
var filterCatagory = jQuery( this ).attr( 'data-filter' );
$container.isotope( { filter: filterCatagory } );
return false;
});
jQuery( "#filter-drop" ).change( function() {
var filters = jQuery( this ).val();
$container.isotope({ filter: filters });
});
jQuery( window ).smartresize( function() {
$container.isotope({
resizable : false,
masonry : {
columnWidth : $container.width() / 3
}
});
}).smartresize();
$container.imagesLoaded( function() {
jQuery( window ).smartresize();
});
// filter Navigation
jQuery( '<select id="filter-drop" />' ).appendTo( "#filters" );
jQuery( "<option />", {
"selected": "selected",
"value" : "",
"text" : "Filter"
}).appendTo( "#filters select" );
jQuery( "#filters a" ).each( function() {
var el = jQuery( this );
jQuery( "<option />", {
"value" : el.attr( "data-filter" ),
"text" : el.text()
}).appendTo( "#filters select" );
});
jQuery( "#filters select" ).change( function() {
window.location = jQuery( this ).find( "option:selected" ).val();
});
我对 jQuery 有点陌生,所以我可能(而且很可能)忽略了一些东西,对此主题的任何帮助将不胜感激!