JavaScript预先添加的内容在Safari中的锚定单击上不显示
我正在WordPress上做一个项目,利用主题定制器帮助其他人和我一起在网站上工作。我们正在动态加载很多内容和选项,比如Google字体,因此加载定制程序需要几秒钟才能完全加载(停留在管理页面上,几秒钟后进入/customize.php页面) 因此,我想添加一条简单的“Customizer Loading”消息,让用户知道发生了什么。在Chrome和Firefox中一切都很好,但Safari和Internet Explorer(据我在沙司中的测试所知)给我带来了问题 我正在使用以下JavaScript添加加载消息:JavaScript预先添加的内容在Safari中的锚定单击上不显示,javascript,jquery,wordpress,safari,onclick,Javascript,Jquery,Wordpress,Safari,Onclick,我正在WordPress上做一个项目,利用主题定制器帮助其他人和我一起在网站上工作。我们正在动态加载很多内容和选项,比如Google字体,因此加载定制程序需要几秒钟才能完全加载(停留在管理页面上,几秒钟后进入/customize.php页面) 因此,我想添加一条简单的“Customizer Loading”消息,让用户知道发生了什么。在Chrome和Firefox中一切都很好,但Safari和Internet Explorer(据我在沙司中的测试所知)给我带来了问题 我正在使用以下JavaScr
$('a[href=“customize.php”])。单击(函数(){
$('head')。前置('');
$('body')。前缀(“”);
});
在
块中,我只包含了我的样式,然后
就是我放置内容的地方
Safari中发生的事情(同样,从我所知道的)是,当点击
时,样式和内容被添加到DOM中(我可以在查看页面时看到它们),但它们实际上并不可见,而在Chrome和Firefox中却可见
如果我在链接上使用e.preventDefault()
,加载消息显示得很好。其他事件,如alert()
和console.log()
注册良好,链接将按预期继续。只有添加到DOM中的新内容不可见
我不知道到底是什么原因导致了这一点,非常感谢任何帮助。我尝试在JSFIDLE中重新创建这个问题,但是我无法复制我在WordPress管理面板中得到的相同结果(如果您将
$('a[href=“customize.php”]”)更改为后端中的任何其他slug,如“themes.php”,则结果相同).如果您的样式最初是现有加载样式表的一部分,那么它是否有效?我也尝试过,但同样无效。就像在Safari中一样,一旦注册了锚点击,就不会显示对页面的更改。另外一个奇怪的是,如果我在访问Customizer后回击,则会显示加载消息,我必须刷新以使其消失。您是否尝试过使用e.preventDefault()
执行更改,然后按照链接location.href='clicked link'代码>。您也可以使用setTimeout
在一定延迟后尝试跟踪链接,只是为了看看它给出了什么。它似乎在重定向页面,但却阻止了预先设置的内容显示,哈哈。这就像我只能有一个或另一个。如果您使用setTimeout
方法延迟重定向过程,那么这几乎是不可能的。你试过这种方法吗?