【发布时间】:2014-01-07 19:05:02
【问题描述】:
我有一些内联 jQuery 可以按需为我的 Expression Engine 模板加载 Disqus cmets,但由于某些奇怪的原因,我无法使其正常工作:
jQuery(document).ready(function() {
jQuery('.show-comments').on('click', function(){
var disqus_shortname = 'xxxxxxx'; // Replace this value with *your* username.
var disqus_identifier = 'xxxxxxxxxxx_{exp:channel:entries disable='categories|custom_fields|member_data|pagination' channel='channel'}{entry_id}{/exp:channel:entries}';
var disqus_url = '{site_url}xxxxxx/xxxxx/{exp:channel:entries disable='categories|custom_fields|member_data|pagination' channel='channel'}{url_title}{/exp:channel:entries}';
// ajax request to load the disqus javascript
jQuery.ajax({
type: "GET",
url: "http://" + disqus_shortname + ".disqus.com/embed.js",
dataType: "script",
cache: true
});
// hide the button once comments load
jQuery(this).fadeOut();
});
});
从外部 JS 文件调用时可以正常工作,但在 html 文件中调用时会失败。
任何帮助将不胜感激!谢谢。
【问题讨论】:
-
以什么方式失败?发生了什么错误? (我期待
jQuery is not defined -
嗨凯文。好吧,“加载 disqus cmets”按钮应该加载脚本并显示 Disqus cmets。我希望人们能够按需加载 Disqus,而不是让它自动加载。
-
当你说inline的时候,这个JS嵌入在哪里?请记住在加载 jQuery 后嵌入它。另外,您的浏览器控制台上是否有任何错误消息?
-
嗨特里。 JS 嵌入在 Disqud 线程 div 下方的
标记中。我在页脚中加载了 jQuery。是否应该放在标题中? -
@user2485157 我知道它没有做你认为应该做的事情。但这并不能帮助我们帮助您解决问题。它没有做你认为应该做的事情一定是有原因的。根据您在页面中包含它的方式/位置,我没有在您的代码中看到任何会使其行为异常的东西。
标签: jquery ajax expressionengine