Javascript jQuery函数-意外行为
它的作用是:Javascript jQuery函数-意外行为,javascript,jquery,Javascript,Jquery,它的作用是: 选择顶部的选项卡后,它将获得其类别并仅显示ul.portfolio>li 类中的元素 $('.portfolio-filter li a').click(function() { $('.portfolio-filter > .selected').prop('class',''); $(this).parent('li').addClass('selected'); var FilterClass = $(this).attr('cla
- 选择顶部的选项卡后,它将获得其类别并仅显示
类中的元素ul.portfolio>li
$('.portfolio-filter li a').click(function() { $('.portfolio-filter > .selected').prop('class',''); $(this).parent('li').addClass('selected'); var FilterClass = $(this).attr('class'); $('#portfolio-items li').hide(); $('#portfolio-items li.' + FilterClass).show(); $('#portfolio-items').CreateTabs(); });
- 然后运行CreateTabs函数-在底部创建分页
- 问题是最后一个元素
上没有
类,但如果选择tab logo,它将显示出来/“logo”
为什么?非常感谢您的任何建议我不完全理解,但我认为问题在于分页功能,因为只有切换到第三页时才会显示最后一个LI元素,对吗? 看看这个: -点击全部 -单击第三页 -单击“徽标” -观察
-结果:数字3继续被选中,并且分页顺序已更改,如果单击第2页,结果将高于第3页中的结果 问题出在
CreateTabs
和Pagination
函数中
以下是CreateTabs
的解决方案:
$.fn.CreateTabs = function(filterClass){
var CoundNumberOfDivs = $('#portfolio-items li:visible').length;
$('.pagination li a').hide();
if( CoundNumberOfDivs <= 4 ) {
return false;
}
else {
var num = Math.ceil(CoundNumberOfDivs / 4);
$('.pagination li a:lt(' + num + ')').show();
$('#portfolio-items li').hide();
if (filterClass === undefined) {
$('#portfolio-items li:lt(4)').show();
} else {
$('#portfolio-items li.' + filterClass + ':lt(4)').show();
}
}
};
})(jQuery);
有
if ($(this).hasClass('href-1')) {
PI.slice(0, 4).show();
}
.... etc
必须重写-坦率地说,这很糟糕。分页代码显示所有链接,而不仅仅是所选选项卡的链接。因为徽标是唯一一个包含4个以上项目的选项卡,所以您在其他选项卡中看不到它。@Pelshoff-我不明白-您可以再试一次解释吗?我不明白-您可以再试一次解释吗?抱歉,我无法使您的代码正常工作。您是否对工作示例进行了修改?了解了工作知识-为什么不选择onload-您的
if(filterClass===undefined)
不应该处理它吗?要获得默认选择,请替换部分:$(document).ready(function(){var filterClass='all';$('#公文包项li')。CreateTabs(filterClass);
if ($(this).hasClass('href-1')) {
PI.slice(0, 4).show();
}
.... etc