Javascript 按数据属性筛选对象,并在每次使用时重置筛选器
我正试图模仿Itosoption pluggin for JQuery的过滤功能,因为我需要过滤图像,但实际上使用Itosoption会给页面上的一些视差扫描元素带来问题 我编写了这个简短的JQuery代码片段来切换那些没有数据属性Javascript 按数据属性筛选对象,并在每次使用时重置筛选器,javascript,jquery,filter,packery,Javascript,Jquery,Filter,Packery,我正试图模仿Itosoption pluggin for JQuery的过滤功能,因为我需要过滤图像,但实际上使用Itosoption会给页面上的一些视差扫描元素带来问题 我编写了这个简短的JQuery代码片段来切换那些没有数据属性data filter的图像。除了packypluggin在移除不匹配的项目后不会重新订购之外,它工作正常 我遇到的问题是,我需要在单击另一个筛选器链接后重置筛选器,就像单击了另一个筛选器一样,然后第一个筛选的元素消失,并且返回除已筛选元素之外的所有其他元素。我确信这
data filter
的图像。除了packy
pluggin在移除不匹配的项目后不会重新订购之外,它工作正常
我遇到的问题是,我需要在单击另一个筛选器链接后重置筛选器,就像单击了另一个筛选器一样,然后第一个筛选的元素消失,并且返回除已筛选元素之外的所有其他元素。我确信这个解决方案很简单,但我对JQuery的了解非常有限,所以我不知道如何处理这个问题
代码
我也没有办法用一个链接将所有元素返回到可见状态,非常感谢任何帮助 根据,您可以使用toggle(true)
$(“#过滤器a”)。单击(函数(){
变量类型=$(this.attr('data-filter');
$('img').toggle(true).not('[data filter=“'+type+'”).toggle(1000);
});
根据,您可以使用切换(true)
$(“#过滤器a”)。单击(函数(){
变量类型=$(this.attr('data-filter');
$('img').toggle(true).not('[data filter=“'+type+'”).toggle(1000);
});
根据,您可以使用切换(true)
$(“#过滤器a”)。单击(函数(){
变量类型=$(this.attr('data-filter');
$('img').toggle(true).not('[data filter=“'+type+'”).toggle(1000);
});
根据,您可以使用切换(true)
$(“#过滤器a”)。单击(函数(){
变量类型=$(this.attr('data-filter');
$('img').toggle(true).not('[data filter=“'+type+'”).toggle(1000);
});
我认为您不想使用切换来实现该功能。对于适合或不适合过滤器类型的不同类型,您可能会专门使用“隐藏”和“显示”。像这样:
$("#filters a").click(function() {
var type = $(this).attr('data-filter'),
$img = $( 'img' );
$img.filter( '[data-filter="'+type+'"]' ).show( 1000 );
$img.not( '[data-filter="'+type+'"]' ).hide( 1000 );
});
然后,要重置所有过滤器,您可以在事件中使用单独的事件或条件,然后执行以下操作以显示所有图像:
$img.show( 1000 );
我认为您不想为该功能使用切换。对于适合或不适合过滤器类型的不同类型,您可能会专门使用“隐藏”和“显示”。像这样:
$("#filters a").click(function() {
var type = $(this).attr('data-filter'),
$img = $( 'img' );
$img.filter( '[data-filter="'+type+'"]' ).show( 1000 );
$img.not( '[data-filter="'+type+'"]' ).hide( 1000 );
});
然后,要重置所有过滤器,您可以在事件中使用单独的事件或条件,然后执行以下操作以显示所有图像:
$img.show( 1000 );
我认为您不想为该功能使用切换。对于适合或不适合过滤器类型的不同类型,您可能会专门使用“隐藏”和“显示”。像这样:
$("#filters a").click(function() {
var type = $(this).attr('data-filter'),
$img = $( 'img' );
$img.filter( '[data-filter="'+type+'"]' ).show( 1000 );
$img.not( '[data-filter="'+type+'"]' ).hide( 1000 );
});
然后,要重置所有过滤器,您可以在事件中使用单独的事件或条件,然后执行以下操作以显示所有图像:
$img.show( 1000 );
我认为您不想为该功能使用切换。对于适合或不适合过滤器类型的不同类型,您可能会专门使用“隐藏”和“显示”。像这样:
$("#filters a").click(function() {
var type = $(this).attr('data-filter'),
$img = $( 'img' );
$img.filter( '[data-filter="'+type+'"]' ).show( 1000 );
$img.not( '[data-filter="'+type+'"]' ).hide( 1000 );
});
然后,要重置所有过滤器,您可以在事件中使用单独的事件或条件,然后执行以下操作以显示所有图像:
$img.show( 1000 );
您可能希望为这两个动画添加一个选项,以便同步执行它们。为此,您可以执行以下操作:show({duration:1000,queue:false});隐藏({持续时间:1000,队列:false});您可能希望为这两个动画添加一个选项,以便同步执行它们。为此,您可以执行以下操作:show({duration:1000,queue:false});隐藏({持续时间:1000,队列:false});您可能希望为这两个动画添加一个选项,以便同步执行它们。为此,您可以执行以下操作:show({duration:1000,queue:false});隐藏({持续时间:1000,队列:false});您可能希望为这两个动画添加一个选项,以便同步执行它们。为此,您可以执行以下操作:show({duration:1000,queue:false});隐藏({持续时间:1000,队列:false});