Vtiger-Jquery滑动切换随机切换两次

Vtiger - Jquery slideToggle randomly toggles twice

本文关键字:两次 随机 Vtiger-Jquery      更新时间:2023-09-26

我在账户模块的摘要视图中制作了一个小部件。在这个小部件中,我想使用幻灯片切换来显示一些细节。有时代码运行得很好,但有时它会切换两次并立即关闭细节。

JS:

    $(document).ready(function() {
        $('.potential_single_title').on('click',function(e) {
            $(this).parent().find('.potential_comment_list').slideToggle('slow');
        });
    });

TPL:

<script src="resources/ChildCommentScript.js"></script>
<link rel="stylesheet" type="text/css" href="resources/ChildCommentStyle.css">
{strip}
    <div class="potential_comment_container">
    {foreach from=$OPP key=K item=POT}
        <br />
        <div class="potential_single">
            <div class="potential_single_title">
                <strong>{$POT[1]}</strong> <span class="potential_assignee">Assigned to : {$POT[2]}</span>
            </div>
            <hr>
            <div class="potential_comment_list">
                <div class="commentContainer">
                {foreach from=$COM[$K] item=POTCOM}
                    <div class="commentDetails" style="width:100%;">
                        <div class="span1">
                            <img class="alignMiddle pull-left" src="layouts/vlayout/skins/images/DefaultUserIcon.png">
                        </div>
                        <span class="commentorName"><strong> {$POTCOM[0]}</strong></span>
                        <span class="pull-right"><p class="muted"><small>{$POTCOM[1]}</small></p></span>
                        <div class="commentInfoContent">{$POTCOM[2]}</div>
                    </div>
                {/foreach}
                </div>
            </div>
        </div>
    {/foreach}
    </div>
{/strip}

滑动切换的使用似乎是正确的。我怀疑点击有时会发生两次,这会导致再次滑动。如果发生滑动操作,修改JS以拒绝点击可能会解决问题。

$(document).ready(function() {
    var sliding = false;
    $('.potential_single_title').on('click',function(e) {
        if(sliding) return false;
        sliding = true;
        $(this).parent().find('.potential_comment_list').slideToggle('slow', function() {sliding = false;});
    });
});

包括滑动时拒绝点击操作的简单标志!

这只是为了展示如何查看单击是否发生了两次。

 $(document).ready(function() {
            $('.potential_single_title').on('click',function(e) {
                console.log("clicked")
            });
        });

只需单击一次。。如果在控制台中您看到点击了两次,您可以假设您的触发器是快乐的;-)

试着在那里放一个调试器。。。可能会突出显示

$(document).ready(function() {
                $('.potential_single_title').on('click',function(e) {
                    console.log("clicked");
debugger;
                });
            });

在chrome中,调试器控制台必须打开才能进入调试器行。

只是想排除愚蠢的事情。。这是一对一的什么是在页面上没有其他js。。。比如你的包装$(document).ready(两次或其他什么,但问题中没有包含该代码?