我有一个stackoverflow!
我已经跟踪了源代码到magnificpopup js文件的setFocus和onFocusIn,但我无法确定我在哪里生成它。
一些相关的行(在这个片段中,一个活动的magnificpopup被关闭,一些JS(通过AJAX生成)创建另一个magnificpopup
var active_magnificPopup = $.magnificPopup.instance;
$( '#frm' ).ajaxSubmit( { url: '<?php echo get_template_directory_uri(); ?>/handleSubscriberForms.php', type: 'post', target: '#subscriptionSubmisionTarget' } );
active_magnificPopup.close();
现在回归&#39;表单处理程序
jQuery( document ).ready( function( $ ) {
$( "#ajax-thankyou" ).magnificPopup( {
type: "ajax",
alignTop: false,
closeOnContentClick: false,
overflowY: "scroll", // as we know that popup content is tall we set scroll overflow by default to avoid jump
tError: "<a href=\"%url%\">The content</a> could not be loaded." // Error message, can contain %curr% and %total% tags if gallery is enabled
} );
setTimeout(
function() {
$( "#ajax-thankyou" ).trigger( "click" );
},
125
);
} );
据我了解,第一个弹出窗口在第二个弹出窗口出现之前关闭,但是,在移动设备中,代码会生成一个stackoverflow,第一个弹出窗口永远不会关闭(第二个弹出窗口会在它后面打开)。
如果有人能够澄清这一点,那将是非常棒的......在这一点上我的大脑很痛苦。
--- Jai's tip ---
之后的版本嘿嘿,
看起来,可能源头不是我想的。我已经编辑过&#39; return&#39;现在并没有使用触发器(下一个代码框)。这个东西就像之前一样(如计算机中的魅力,移动设备中的stakoverflow)。
echo '
<script>
jQuery( document ).ready( function( $ ) {
setTimeout(
function() {
$.magnificPopup.open( {
items: {
src: "' . get_template_directory_uri() . '/form-thankyou.php?pi=' . $post_ID . '"
},
type: "ajax",
alignTop: false,
closeOnContentClick: false,
closeBtnInside: true,
overflowY: "scroll",
tError: "<a href=\"%url%\">The content</a> could not be loaded."
} );
},
125
);
} );
</script>
';
这里是控制台的日志(我明白在o._setFocus和o._onFocusIn之间生成了无限循环,但我无法确定如何跟踪生成它的元素)
Uncaught RangeError: Maximum call stack size exceeded jquery.tools.min.js:37
---From here to the end is repeating---
f.event.trigger jquery.tools.min.js:37
(anonymous function) jquery.tools.min.js:37
e.extend.each jquery.tools.min.js:36
e.fn.e.each jquery.tools.min.js:36
f.fn.extend.trigger jquery.tools.min.js:37
f.fn.(anonymous function) jquery.tools.min.js:37
e.fn.extend.focus jquery.ui.core.min.js?ver=1.10.4:4
o._setFocus magnific-popup.min.js:3
o._onFocusIn magnific-popup.min.js:3
f.event.dispatch jquery.tools.min.js:37
h.handle.i jquery.tools.min.js:37
提前致谢
答案 0 :(得分:0)
当我使用.trigger()
方法时,我也遇到了同样的问题。我做了什么的解决方案,我做了一个功能,并在需要时再次调用它,所以你可以这样做:
function magPopup(){
$( "#ajax-thankyou" ).magnificPopup( {
type: "ajax",
alignTop: false,
closeOnContentClick: false,
overflowY: "scroll", // as we know that popup content is tall we set scroll overflow by default to avoid jump
tError: "<a href=\"%url%\">The content</a> could not be loaded." // Error message, can contain %curr% and %total% tags if gallery is enabled
});
}
jQuery(document).ready(function($) {
magPopup();
setTimeout(function() {
magPopup();
}, 125);
});