小编qua*_*rky的帖子

谷歌reCaptcha重置不起作用

我想通过AJAX提交表单时重置Google reCaptcha小部件,并发送一些输入错误或表单.我在同一页面上使用多个小部件,因此我明确地呈现这些小部件.

我的HTML代码:

<div class="g-recaptcha" id="recaptcha-1"></div>
<div class="g-recaptcha" id="recaptcha-2"></div>
...
<div class="g-recaptcha" id="recaptcha-20"></div>
Run Code Online (Sandbox Code Playgroud)

加载小部件

<script src="https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit&hl=en" async defer></script>
<script>
    var reCaptchaCallback = function() {
        var elements = document.getElementsByClassName('g-recaptcha');
        for (var i = 0; i < elements.length; i++) {
            var id = elements[i].getAttribute('id');
            grecaptcha.render(id, {
                'sitekey' : 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
            });
        }
    };
</script>
Run Code Online (Sandbox Code Playgroud)

提交表格后:

var id = $('.g-recaptcha', form).attr('id');
grecaptcha.reset(id);
Run Code Online (Sandbox Code Playgroud)

表单是提交表单的实例.

当表格填写正确时,一切正常.但reCaptcha不会重置或重新加载.尝试这个grecaptcha.reset()但没有结果.

任何的想法?

javascript ajax reload reset recaptcha

26
推荐指数
1
解决办法
4万
查看次数

砌体销毁并再次初始化

我已经初始化砌体插件 - 工作正常,

比我销毁它的媒体宽度 <= 767px - 它被销毁了

但是当我回到媒体宽度 > 767px 并再次初始化砌体时,它不起作用。

为什么?

或者是否有其他解决方案可以关闭 masonry 插件,然后在某些事件中打开它?

这是我的代码:

var masonryData = {
    isInitLayout: true,
    isResizeBound: false,
    itemSelector: '.item',
    columnWidth: 300,
    gutter: 20,
    transitionDuration: '0.5s'
};

function initializeMasonry(masonryData){
    if (jQuery().masonry) {
        var masonryContainer = jQuery('.masonry').masonry(masonryData);
        jQuery(masonryContainer).imagesLoaded(function(){
            jQuery(masonryContainer).masonry(masonryData);
        });
    }
}

function destroyMasonry(){
    if (jQuery().masonry) {
        jQuery('.masonry').masonry();
        jQuery('.masonry').masonry('destroy');
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用查询插件,所以我对 js 媒体查询使用匹配/不匹配方法:

$.Site.Match.smallScreen = function() {
   ...
   destroyMasonry();
   ...
}

$.Site.Match.mediumScreen = function() {
   ...
   initializeMasonry(masonryData);
   ...
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

recreate destroy media-queries jquery-masonry

2
推荐指数
1
解决办法
9958
查看次数

从MySQL表中获取顶级玩家

我在MySQL DB中有表,其中包含两个字段user_idscore.此表是一种日志表,因此对于具有不同分数的一个user_id,可以有多行.如何才能从此表中获得得分最高的前10位用户?

mysql select unique distinct

1
推荐指数
1
解决办法
472
查看次数

jQuery - 从特定模式开始删除所有元素类

我需要从'layout-'中删除元素开头的所有类

我尝试:

var regex = new RegExp('\b' + 'layout-' + '.*?\b', 'g');
$(el)[0].className = $(el)[0].className.replace(regex, '');
Run Code Online (Sandbox Code Playgroud)

但它不起作用.解决方案可以在jQuery中.任何的想法?

regex tags jquery class removeall

0
推荐指数
1
解决办法
4870
查看次数