【问题标题】:Inline jQuery/AJAX not working in Expression Engine内联 jQuery/AJAX 在表达式引擎中不起作用
【发布时间】: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


【解决方案1】:

是的,需要在运行任何调用 jQuery 函数的脚本之前加载 jQuery。所以要么将此脚本移动到页脚(在加载 jQuery 的脚本下方),要么将 jQuery 加载移动到页面的头部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多