我第一次在这里提问,所以如果我没有正确地做,我会事先道歉。
我收到此错误:
TypeError:s未定义
当我点击小于1020px的设备上显示的切换菜单时。
我正在使用superfish进行切换菜单并且工作正常,直到我在我的目录中添加了一个新的JS文件并在我的function.php中注册并排队。
我必须单击两次才能切换菜单,这就是我检查firebug控制台错误的原因。
亚当评论后更新: 在Chrome控制台中,我收到此消息: “未捕获的TypeError:无法调用未定义的方法'替换'” 在我的superfish.min.js文件中。不确定我是如何在.min文件中找到该行的。 但是我在.min文件中找到了这一行。 {return s.replace(/ display [^;] +;?/ g,“”)}
以下是我用于菜单的代码。
jQuery(document).ready(function($) {
if( $('.mobile-primary-toggle').length || $('.mobile-secondary-toggle').length ) {
if(dynamik_sf_enabled) {
var sf = $('ul.js-superfish');
}
$('.responsive-primary-menu-container').click(function() {
if(dynamik_sf_enabled && dynamik_reveal_sub_pages) {
sf.superfish('destroy');
}
$('.nav-primary').slideToggle();
$('#nav').slideToggle();
});
$(window).resize(function() {
if(dynamik_sf_enabled && dynamik_reveal_sub_pages) {
if(window.innerWidth <= media_query_small_width) {
sf.superfish('destroy');
} else {
sf.superfish('init');
}
}
if(window.innerWidth > media_query_small_width) {
$('.nav-primary').removeAttr('style');
$('#nav').removeAttr('style');
}
});
}
});
有关如何解决此问题的任何建议吗?
答案 0 :(得分:0)
取$(窗口).resize(function(){在if语句之外和ready函数之外;因为调整窗口的大小可以随时发生,它依赖于sf有值。
$.(function(){
$(window).resize(function() {
if(dynamik_sf_enabled && dynamik_reveal_sub_pages) {
if(window.innerWidth <= media_query_small_width) {
sf.superfish('destroy');
} else {
sf.superfish('init');
}
}
if(window.innerWidth > media_query_small_width) {
$('.nav-primary').removeAttr('style');
$('#nav').removeAttr('style');
}
});
});