slideToggle打开并在某些情况下立即关闭

时间:2014-07-03 12:40:53

标签: jquery

我使用以下命令在我的页面上滑动()切换元素:

$('body').on('click', '#commentArticle', function(e) {
    $('#commentArticleForm').slideToggle({
        duration: 400,
        step: resizeContentHeight
    });

});

行为不一致。如果您直接访问该页面(here)并切换发表评论表单,则表明它可以正常运行。但如果您继续浏览父页面(here)并点击第一篇文章链接(带来)然后大约90%的时间表格将打开然后立即关闭。刷新页面将纠正故障。

我甚至不知道从哪里开始调试这种不一致的行为,特别是因为只有在从父页面访问页面时才会出现问题。

请告诉我是否需要更多信息来帮助追踪这个故障。

注意:在OSX上的Chrome,Firefox和Safari上观察到行为。

编辑:通过在上面的函数中添加console.log("a"),我现在可以看到问题的来源,slideToggle()何时进入"溜溜球"这实际上是因为出于某种原因单击#commentArticle会被记录为两次点击,即:控制台显示a两次。

2 个答案:

答案 0 :(得分:1)

我有这个确切的问题,这就是我修复它的方法:

1)你需要添加" touchstart"到iPad的方法。 2)您需要添加preventDefault以防止点按两次

$(document).on("click touchstart","'#commentArticle", function(e){
        $('#commentArticleForm').slideToggle({
            duration: 400,
            step: resizeContentHeight
        });
        e.preventDefault();
    });

请尝试一下,看看它是否有效。

答案 1 :(得分:0)

确保您的 js 文件只包含一次。