【发布时间】:2020-09-25 16:06:18
【问题描述】:
我正在尝试做两件事:
- 在单击“显示 cmets”按钮后加载 Disqus 脚本
embed.js。 - 通过同一按钮隐藏
disqus_threaddiv,同时更改按钮中的文本。
问题是页面加载后,我必须点击“显示评论”两次;第一次点击加载embed.js,这应该将disqus_thread切换为可见,但我必须再次点击才能看到disqus_thread。 (与加载 embed.js 无关;我只想切换 div 并将其隐藏。)
注意:showComments() 中的 {{ }} 结构是 hugo,但我认为它们不是问题。
<button id="disqus-button" onclick="showComments()">Show comments</button>
<script>
$( document ).ready(function() {
$('#disqus-button').click(function(){
$('#disqus_thread').toggle();
$(this).text( $(this).text() == 'Show Comments' ? "Hide Comments" : "Show Comments");
});
});
</script>
<div id="disqus_thread"></div>
<script>
function showComments() {
var disqus_config = function () {
{{with .Params.disqus_identifier }}this.page.identifier = '{{ . }}';{{end}}
{{with .Params.disqus_title }}this.page.title = '{{ . }}';{{end}}
{{with .Params.disqus_url }}this.page.url = '{{ . | html }}';{{end}}
};
var d = document, s = d.createElement('script'); s.async = true;
s.src = '//' + "{{ .Site.DisqusShortname }}" + '.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
}
</script>
【问题讨论】:
-
你试过去掉
onClick并在jQuery的点击函数中添加showComments()吗? -
谢谢,但这无济于事。
标签: hugo javascript jquery toggle