Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
某些Javascript可以在单个页面上工作,但在通过Drupal主题全局加载时不能工作;s javascript_Javascript_Jquery_Drupal 7_Global - Fatal编程技术网

某些Javascript可以在单个页面上工作,但在通过Drupal主题全局加载时不能工作;s javascript

某些Javascript可以在单个页面上工作,但在通过Drupal主题全局加载时不能工作;s javascript,javascript,jquery,drupal-7,global,Javascript,Jquery,Drupal 7,Global,在SO聊天中,有人建议我在这里问以下问题: 我想通过Drupal主题的Javascript在我的整个网站上全局加载一些Javascript;不必在每篇文章中反复插入Javascript代码 例如,我使用以下代码来管理它(想象一下,当在本地插入时,它被包装在..中): (无论是在每页插入时,还是在全局加载到Drupal主题的javascript时,都可以在本地正常工作): 然而,对于另外两个Javascript片段,当全局加载它们时,我无法使它们正常工作。但是,如果将它们本地插入到每一篇连续文章中

在SO聊天中,有人建议我在这里问以下问题:

我想通过Drupal主题的Javascript在我的整个网站上全局加载一些Javascript;不必在每篇文章中反复插入Javascript代码

例如,我使用以下代码来管理它(想象一下,当在本地插入时,它被包装在
..
中):

(无论是在每页插入时,还是在全局加载到Drupal主题的javascript时,都可以在本地正常工作):

然而,对于另外两个Javascript片段,当全局加载它们时,我无法使它们正常工作。但是,如果将它们本地插入到每一篇连续文章中,它们的效果会非常好(我将只提及一个较小的代码,以供参考):

(想象一下,在本地插入时,它再次被包装在
中):


仅供参考:如果您对我如何添加.

感兴趣,解决方案只是将每个“脚本”放在一个单独的
.js
-文件中。如果将它们放在一个
.js
-文件中,它们就会完全失去功能


任何人都知道这是一种特定于Drupal的策略,或者这是Javascript的通用策略,也是“业内人士”都知道的策略吗?

这个问题与Drupal无关,只是一个Javascript问题。我认为(但没有测试)发生这种情况是因为您定义了两次匿名函数
(函数($){…})(jQuery)
。在所有语言中,两个函数名可能永远不会相同。如果您想确定,详细信息应该在浏览器的JavaScript控制台中可见


除此之外,将两个脚本合并为一个脚本更为整洁,因为它们都是在加载文档时启动的。如果您需要更清楚地了解脚本的哪一部分执行特定功能,那么将其拆分为多个文件(正如您已经发现的那样)也是可行的。

提示:啊哈:目前我一次只能使用1个Javascript代码。。。我可以选择加载第一个脚本,也可以加载第二个脚本。Hou应该能够通过组合document.ready函数的内容来组合这两个脚本。你只需要一次,行为应该保持不变。我也不知道第3行的美元符号是什么意思。据我所知,这并没有什么特别的作用。@Neograph734-抓得好。将它们封装在
$(document).ready(function(){
当然可以作为答案提交,因为这似乎也解决了问题。=)
(function ($) {
    $(document).ready(function () {
        $
        $(".toggler").click(function () {
            $(this).next().slideToggle("slow");
        }).next().hide();
        $("a[href^=#]").click(function () {
            var id = $(this).attr('href');
            $(id).parents('.toggled').fadeIn("fast");
        });
    });
})(jQuery)
(function($) {
    $(document).ready(function() {
        function getKey(element) {
            return element.href;
        }

        function sameGroupAs(element) {
            var key = getKey(element);
            return function() {
                return getKey(this) === key;
            }
        }
        $(document).on("mouseenter", "a", function() {
            $("a").filter(sameGroupAs(this)).addClass(
                "active");
        }).on("mouseleave", "a", function() {
            $("a").filter(sameGroupAs(this)).removeClass(
                "active");
        });
    });
})(jQuery)