javascript - stop() 的 slideToggle 问题

标签 javascript jquery css xhtml

$(document).ready(function() {
    $("ul li").click(function() {
        $(this).find("p").slideToggle("normal");
        return false;
    });
});

通过这段 jQuery 代码,我可以让元素滑入和滑出。但问题是,当有人快速点击时,滑出只会滑出,直到达到最新达到的高度的最大高度。

因此,如果有人快速点击,元素只会滑出几个像素,然后再向上滑动。如果他们不想再次点击将其滑出,它只会滑出到上次达到的最大高度。

谁能帮我解决这个问题,让这项工作正常进行?

PS:p 元素的高度设置为 auto,因此它会自动匹配内部内容的高度(也许这个细节会对您的回答有所帮助)。

最佳答案

不使用 click 函数来附加点击事件,而是使用 one:

$("ul li").one("click", doStuff);

function doStuff(){ 
   // do your stuff here
   $("ul li").one("click", doStuff); // Re-attach event
}

然后在函数中重新附加事件。

关于javascript - stop() 的 slideToggle 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282816/

相关文章:

javascript - 使用 Javascript 移动对象

jquery - 是否有任何事件表明页面正文已加载?

html - 带有背景的页眉周围的动态背景

javascript - 一个表情符号只能预览一次

javascript - sequelize 列的唯一约束

jquery - 在 JQuery 中按多个属性进行过滤

javascript - 带画廊的 ColorBox

css - 可以用 css 做到这一点吗?显示的图像

css - style span 仅在 div 的第一行

javascript - IP 地址验证,中间有适当的点