Vtiger - Jquery slideToggle 随机切换两次

Vtiger - Jquery slideToggle randomly toggles twice

我在帐户模块的摘要视图中制作了一个小部件。在这个小部件中,我想使用 slideToggle 来显示一些细节。有时代码运行完美,但有时它会双重切换并立即关闭细节。

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( 两次或其他东西,只是没有包含该代码在问题中?