我正在使用quicksand jquery,我已经搜索了解决方案,但没有工作。我试图在页面加载时自动点击一个类别来过滤我想要过滤的内容。
以下是页面上允许用户点击和过滤的链接
<li><a href="javascript:void(0);" id="all">Everything</a></li>
<li><a href="javascript:void(0);" id="cat1">cat1</a></li>
<li><a href="javascript:void(0);" id="cat2">cat2</a></li>
<li><a href="javascript:void(0);" id="cat3">cat3</a></li>
<li><a href="javascript:void(0);" id="cat4">cat4</a></li>
当页面加载时,它会显示所有项目,然后用户可以选择要过滤的类别。我想自动点击一个,我正在寻找生成点击的功能。
这是我尝试过的解决方案:
<script type="text/javascript">
$(document).ready(function() {
$(".filter li a.cat2").trigger('click');
});
</script>
and
<script type="text/javascript">
$(document).ready(function() {
$(".filter li a.cat2").trigger('click');
});
</script>
and
<script>
$(function() {
// It would be better to create a function for this, but
// to avoid code duplication the click() event is triggered/reused
$('.filteroptions li a cat2').click();
});
</script>
这是它运行的js文件以及为什么我选择删除“filteroptions”并尝试“过滤”,如其他帖子中所建议的那样。因为我的节目显示“.filter li a”而不是过滤次数
// DOMContentLoaded
$(function () {
// bind radiobuttons in the form
var $filterType = $('.filter li a');
// get the first collection
var $applications = $('#list');
// clone applications to get a second collection
var $data = $applications.clone();
// attempt to call Quicksand on every form change
$filterType.click(function (e) {
$('.filter li a').removeClass('selected');
$(this).addClass('selected');
if ($(this).attr('id') == 'all') {
var $filteredData = $data.find('li');
} else {
var $filteredData = $data.find('li[class=' + $(this).attr('id') + ']');
}
// finally, call quicksand
$applications.quicksand($filteredData, {
duration: 800,
easing: 'easeInOutQuad',
attribute: 'id'
}, function () {
$("a[data-rel^='prettyPhoto']").prettyPhoto({ animationSpeed: 'slow', social_tools: false, slideshow: 2000 });
});
});
});
以下是您可能会说的其他帖子相同,但我尝试了它们并且它们不起作用。他们使用的是较旧的流沙。
JQuery Quicksand: Link directly to pre-filtered Quicksand from another page
答案 0 :(得分:2)
您在非课堂上使用ID,因此请将您的点击触发器更改为
$(".filter li #cat2").trigger('click');