Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery函数-意外行为_Javascript_Jquery - Fatal编程技术网

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函数-在底部创建分页

  • 问题是最后一个元素
  • 上没有
    “logo”
    类,但如果选择tab 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