为什么这不起作用?
$("#panellink").click(
function () {
$(this).addClass("hover"),
$("#playerpanel").slideDown(250);
},
function () {
$(this).removeClass("hover"),
$("#playerpanel").slideUp(250);
}
);
我想要的只是当他们点击#playerpanel向下滑动的链接时再次点击它会向上滑动???
当我点击预期的链接时,它会向下滑动,当我再次点击链接时,它不会向上滑动而只是停留在那里。
答案 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语句都应以分号;
结尾,而不是逗号,
。
希望这有帮助