Jquery slideDown和slideUp

时间:2011-09-01 02:24:00

标签: jquery

为什么这不起作用?

    $("#panellink").click(
    function () {
        $(this).addClass("hover"),
    $("#playerpanel").slideDown(250);
    },
    function () {
        $(this).removeClass("hover"),
    $("#playerpanel").slideUp(250);
    }
);

我想要的只是当他们点击#playerpanel向下滑动的链接时再次点击它会向上滑动???

当我点击预期的链接时,它会向下滑动,当我再次点击链接时,它不会向上滑动而只是停留在那里。

3 个答案:

答案 0 :(得分:2)

请改为尝试:

$("#panellink").click(function() {
    $(this).toggleClass( "hover" );
    $(this).slideToggle( 250 );
});

答案 1 :(得分:1)

您想使用toggle代替click

http://api.jquery.com/toggle-event/

  

.toggle()方法绑定click事件的处理程序,因此规则   此处也列出了触发点击申请的概述。

$("#panellink").toggle(
    function () {
        $(this).addClass("hover");
        $("#playerpanel").slideDown(250);
    },
    function () {
        $(this).removeClass("hover");
        $("#playerpanel").slideUp(250);
    }
);

另外,在添加/删除类调用之后你有逗号...应该是分号。

我认为这有助于你想要做的交替功能。

希望这有帮助!

答案 2 :(得分:0)

让我们假设您的HTML代码是正确的,并且您已经定义了您在JQuery中使用的元素(即id =“panellink”的元素,以及id =“panelplayer”的元素)。

我正在查看JQuery API的.click()事件(http://api.jquery.com/click/),它似乎不接受一对函数作为处理程序。

你可以做的是做一些检查,然后对结果采取行动。 您可以检查元素是否具有hover类,然后处理每个案例。

$("#panellink").click( function() {
    if( $(this).hasClass("hover") ) {
        $(this).removeClass("hover");
        $("#playerpanel").slideUp(250);
    } else {
        $(this).addClass("hover");
        $("#playerpanel").slideDown(250);
    }
)

注意:另外,我只是注意到我认为是拼写错误。 addClass和removeClass语句都应以分号;结尾,而不是逗号,

希望这有帮助