我在插件内容方面遇到过几次这种情况。似乎在动态内容仍在加载时触发了document ready事件。检查的方法是将Javascript留在原处并加载页面。页面完全加载后,进入浏览器控制台(右键单击并在Firefox上“inspect element”,或只对Chrome进行“inspect”。在两者上,单击顶部的“console”,然后在代码字段(底部为FF,顶部为Chrome)中键入“jQuery(\'tp-tab\')。长如果您得到的不是记录的值,这就是问题所在。
解决这一问题的最快方法是破解。将代码放入函数中,然后放入文档中。ready块,调用setTimeout(\'yourFunction()\',500)。更好的方法是查看插件是否提供了在加载内容后触发的挂钩,或者(哎哟!)编辑插件。
如果您确切知道将有多少个选项卡,您可以将该检查放入您的函数中。对于(未测试)示例:
(function($){
$(document).on(\'ready\', function() {
setTimeout(\'adjustTabs()\', 500);
})
})(jQuery)
function adjustTabs() {
if (jQuery(\'.tp-tabs\').length < 3) {
setTimeout(\'adjustTabs()\', 500);
} else {
// Do stuff here
}
}
}