Javascript 匿名函数在脚本文件中不起作用

Javascript 匿名函数在脚本文件中不起作用,javascript,jquery,anonymous-function,Javascript,Jquery,Anonymous Function,我已经为我的网站创建了一个选项卡菜单。当我在localhost上运行以下JavaScript函数时,它们工作得很好- (function ($) { var tab = $(".xmenu > .xmenu-nav > li > a"), content = $(".xmenu > .xmenu-content > div"); tab.click(function (e) { content.removeClass(

我已经为我的网站创建了一个选项卡菜单。当我在localhost上运行以下JavaScript函数时,它们工作得很好-

(function ($) {
    var tab = $(".xmenu > .xmenu-nav > li > a"),
        content = $(".xmenu > .xmenu-content > div");
    tab.click(function (e) {
        content.removeClass("active");
        tab.removeClass("active");
        $(this).addClass("active");
        $($(this).attr("href")).addClass("active");
        e.preventDefault();
    });
})(jQuery)
但当我在我的网站上使用它们时,它们就不起作用了。包含上述匿名函数(xmenu.js)的文件在jQuery 1.10之后正确加载。你可以查一下。当我点击MultiTrip时,它并没有按预期工作,但当我在控制台中运行上述功能时,它开始工作良好

有人知道为什么加载文件(xmenu.js)时上述函数不运行,但当我将其从文件复制并粘贴到控制台并按enter键时效果良好吗

提前谢谢你!
另外,请检查这一点,它在这里工作正常。

您应该在DOM ready上加载该函数。这可以通过或其速记语法来实现,我将其应用于提供的代码:

    jQuery(function($) {
        var tab = $(".xmenu > .xmenu-nav > li > a"),
            content = $(".xmenu > .xmenu-content > div");
        tab.click(function (e) {
            content.removeClass("active");
            tab.removeClass("active");
            $(this).addClass("active");
            $($(this).attr("href")).addClass("active");
            e.preventDefault();
        });
    });

这应该在页面“初始化”后加载选项卡切换脚本:在DOM准备好使用后,这正是您在执行类似
$(“.xmenu>.xmenu nav>li>a”)

操作时使用的脚本:
jQuery(function($){…})。我甚至不知道*jquery文档中没有提到这一点,是吗?我很快地看了一遍,什么也找不到。奇怪…*没关系,这是在page@FelixKling我修改了我的帖子。谢谢你的提示,我想这对我也会有帮助。检查我的答案,这会为你解决问题。jsfiddle工作的原因是,根据defult,jsfiddle在加载时运行代码。onLoad事件是在onDOMReady事件之后触发的,这就是它在JSFIDLE中工作的原因。在JSFIDLE之外,您必须使它在DOM就绪后运行。