使用按钮使项目可见

时间:2012-07-30 11:48:57

标签: javascript jquery list preventdefault

我有这个javascript代码:

function newsOverview() {
    $(".list-news li:gt(3)").hide();
    $(".box-news .btn-1").on('click', function(e){
        e.preventDefault;
        $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600);
    });
};

我有李项目的大清单。此脚本每次显示4个项目。单击btn-1按钮时。但现在我对这个剧本有疑问。

  • 为什么e.preventDefault不起作用?当我点击按钮。我滚动回到页面顶部。为什么这不起作用?
  • 而且,有可能吗?当所有项目都可见时。按钮消失了。

3 个答案:

答案 0 :(得分:3)

1)preventDefault不起作用,因为它是一个功能。 它应该如下:

e.preventDefault();

2)要查看是否所有项目都可见,请尝试使用以下代码:

if ($(".list-news li:hidden").lehgth == 0) {
   $(".box-news .btn-1").hide();
}

答案 1 :(得分:1)

  

为什么e.preventDefault不起作用?

为了实际调用 preventDefault,您缺少括号:

function newsOverview() {
    $(".list-news li:gt(3)").hide();
    $(".box-news .btn-1").on('click', function(e){
        e.preventDefault(); // don't forget those
        $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600);
    });
};
  

而且,有可能。当所有项目都可见时。按钮消失了。

我的jQuery有点生疏,但这样的事情应该有效:

function newsOverview() {
    $(".list-news li:gt(3)").hide();
    $(".box-news .btn-1").on('click', function(e){
        e.preventDefault();
        if($(".list-news li:hidden").length === 0)
            $(this).hide();
        else
            $(".list-news li:visible:last").nextAll(":lt(4)").fadeIn(600);
    });
};

答案 2 :(得分:0)

e.preventdefault(); not working

并且,你总是可以使用"返回false;"在按钮上,我想。