Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 从堆栈函数调用变量时出现意外标记() 问题_Javascript_Jquery_Function_Variables - Fatal编程技术网

Javascript 从堆栈函数调用变量时出现意外标记() 问题

Javascript 从堆栈函数调用变量时出现意外标记() 问题,javascript,jquery,function,variables,Javascript,Jquery,Function,Variables,将多个函数堆叠在一起并尝试从彼此访问变量时,console返回未捕获的SyntaxError:意外标记( ================================================== 解释功能 $(window).load(function(){)以同时加载所有函数。是否正确使用了此选项 函数切换选项卡内容:从设置函数中获取导航链接ID,并根据变量currentNavSection的数据属性(数据侧栏选项卡)切换主包装器节,变量currentNavSection在转到函数

将多个函数堆叠在一起并尝试从彼此访问变量时,console返回未捕获的SyntaxError:意外标记(

==================================================

解释功能 $(window).load(function(){)以同时加载所有函数。是否正确使用了此选项

函数切换选项卡内容:从设置函数中获取导航链接ID,并根据变量currentNavSection的数据属性(数据侧栏选项卡)切换主包装器节,变量currentNavSection在转到函数中声明(在转到中解释)

功能设置:获取当前点击的导航链接的ID(父项),作为海豚的导航元素,突出显示图标:活动和悬停,并具有根据偏移滑动的侧边框。(在AnimateOrder中解释)

函数animateBorder:使用函数currentNavElement,从设置函数确定边框的偏移量。因此,
var navPosition=$(currentNavElement).offset()
。结果存储在名为navPosition的变量中。然后,名为navBorder的变量确定导航元素(链接的父元素)的偏移量不能具有CSS Top属性0

然后根据导航元素的偏移量(y),使用CSS属性“top”移动导航边界

函数goto:获取当前节的活动$(this),然后通过“#”+组合它 从功能设置中单击导航上的id

编辑代码从@Dante开始跟进
  • 警报(currentNavElement)返回未定义的
  • 功能是否按照最初的预期进行沟通

     $(document).ready(function() {
    setup(function(currentNavElement){
        toggleTabContent(currentNavElement);
        goto(currentNavElement);
        animateBorder(currentNavElement);
        alert(currentNavElement)
    });
    });
    
    function toggleTabContent(currentNavElement) {
    $("[data-sidebar-tab]").each(function(navPosition, currentNavSection) {
        $(currentNavSection).data("sidebar-tab") === currentNavElement ? $(currentNavSection).show() : $(currentNavSection).hide()
    })
    };
    function setup(cb) {
    $(document).delegate(".nav-element a", "click", function() {
        cb($(this).attr("id"));
    })
    };
    function animateBorder(currentNavElement) {
        var navPosition = $(currentNavElement).offset(), 
        navBorder = !!(navPosition && navPosition.top >= 0) && navPosition.top;
    if (!1 === navBorder) return !1;
        $("#nav-border").css('top', navBorder)
    };
    function goto(currentNavElement)  {
    var currentNavSection = $("#"),
        currentNavSectiona = $("#" + currentNavElement + " a");
    };
    
  • 用于引用的HTML
    .load()
    触发事件时执行该函数。加载all映像后,将立即调用处理程序。此外,该方法在1.8中被弃用,并在3.0版jQuery中被删除。有关它的更多信息,请参阅此处-

    首先,我建议您在DOM就绪时使用
    .ready()
    函数来处理事件

    $(document).ready(function() {
      // Run code
    });
    
    第二个时刻,正如注释中提到的,
    function(){}
    它不是一个对象。您应该声明这个函数以及何时使用它

    $(document).ready(function() {
      toggleTabContent(el);
    });
    
    function toggleTabContent(currentNavElement) {
      // Code here
    };
    
    您可以使用的另一个变体:

    $(document).ready(function() {
      var methods = {
        toggleTabContent: function() {
          // Code here
        }
      };
      methods.toggleTabContent();
    });
    
    在这个变体中,我们使用函数
    toggleTabContent
    声明对象
    方法
    。然后调用它
    方法。toggleTabContent()


    关于你可以在这里阅读的对象的更多信息-

    嗯,你试图定义你的
    ToggletaContent
    就像它在一个对象中一样,但它不是。它在一个函数中。这是一个对象,是的,但这是无效的语法。
    var scope={method1:function(){}
    是有效的。
    function(){method1:function(){}
    无效。
    {}
    对于不同的结构有不同的用途。@Taplar Okay在$(window).load(function(){)中添加了一个对象。我应该声明该对象,还是在没有对象的情况下可以使用其他方法来工作函数?函数是这样堆叠的,`function toggleTabContent(currentNavElement){$(“[数据侧栏选项卡]”)。每个(函数(navPosition,currentNavSection){$(currentNavSection).数据(“侧栏选项卡”)===currentNavElement?$(currentNavSection).show():$(currentNavSection).hide()},`如果声明的函数在$(文档)之外,则准备就绪(函数(){}调用它们的位置?好的,按照您的建议。我已将它们分隔为`$(document).ready(function(){toggleTabContent();setup()animateBorder()goto()})`以及它们后面的函数。我的问题是,在调用它们的时候,我应该把它们放在什么地方?它们已经从函数内部调用了,比如函数toggleTabContent(currentNavElement){}和函数animateBorder(currentNavElement){}。这是正确的还是我遗漏了什么?@NTAuro,你的函数
    setup()
    应该返回
    currentNavElement
    ,因为现在你的函数是空的,它不会返回任何东西。一种方法是使用回调函数。使用
    cb()实现
    你可以在这里看到,所以我按照你的建议做了。当我单击导航元素a链接时,作为未定义值的警报输出仍然是错误的。此外,功能是否按预期正确链接在一起?请检查导航栏和内容部分之间设置的示例HTML部分(适用于切换TabContent和navborder以从“显示:无”更改为“块”和“幻灯片”)
    $(document).ready(function() {
      toggleTabContent(el);
    });
    
    function toggleTabContent(currentNavElement) {
      // Code here
    };
    
    $(document).ready(function() {
      var methods = {
        toggleTabContent: function() {
          // Code here
        }
      };
      methods.toggleTabContent();
    });