AJAX模式在多次打开时闪烁

时间:2018-07-30 作者:Logan C

在我的Wordpress站点上,我添加了一个按钮,单击该按钮时会调用一个通过ajax打开的模式。当我在重新加载页面时单击一次按钮,它似乎工作正常,没有任何打嗝。如果我关闭该模式,然后单击按钮再次打开它,而不刷新页面,它将打开,但闪烁一次,然后保持打开状态。如果我再次关闭并重新打开它,它会在保持打开之前闪烁3-4次。我点击按钮的次数越多,闪烁的次数就越多。

jQuery(document).ready(function ($) {
// LAUNCH CALCULATOR/QUIZ MODAL
function qdLoadModal(){
    var options = {
            modal: true,
            height:300,
            width:500
        };

    $(\'#qdModalWindow\').load(\'/wp-content/themes/gift/qdCalcModal.php\');
    $(\'#qdModal\').addClass(\'open\');
    $(\'#qdModal\').animate({
        opacity: 1.0,
    }, 250, function() {
        // Animation complete.
        //qdQuestionHeight();
    });


}

//Launch Quiz Modal
$(\'.calcLaunch\').click(function( event ) {
    event.preventDefault();
    qdLoadModal();
});
});
这就是我用来在单击按钮时加载模式文件的jQuery。我不明白为什么在不重新加载页面的情况下多次打开时,模态会闪烁。如果需要有关我的代码的更多信息,我可以提供它,但在尝试解决几个小时后,我真的不知道该怎么做才能修复它。

编辑:我实际上找到了一个修复方法。我将单击功能更改为:

    $(\'.calcLaunch\').one("click", function( event ){
    event.preventDefault();
    qdLoadModal();
    });
将此函数更改为该值后,只需单击删除闪烁即可运行一次。

1 个回复
SO网友:Vatsh Patel

尝试删除内部的子对象#qdModalWindow 在尝试在其中加载新内容之前。

  $(\'#qdModalWindow\').children().remove();

结束

相关推荐

使用jQuery显示/隐藏DIV-不能在一个页面中工作

两天来我只和一件事斗争。。。但我只是放弃了!我已经做了一个JSFIDLE来检查它,可能是我的代码错了或其他什么。。但是该代码在JSFIDLE上运行良好,但在我的this页面(在另一个子页面上,该代码运行正常)上则不行。。。我使用WPJob Manager Resumes... 我按代码生成页面[简历]按插件WPBakery Page Builder 我将自定义JS添加到子页面。所有代码的工作方式都类似于:alert(“test”),但不适用于以下情况: <script> jQue