Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 jQuery-未指定的令牌。-具体是什么?_Javascript_Jquery_Token - Fatal编程技术网

Javascript jQuery-未指定的令牌。-具体是什么?

Javascript jQuery-未指定的令牌。-具体是什么?,javascript,jquery,token,Javascript,Jquery,Token,我目前正在尝试使用click-if语句来检测是否有一个链接被点击。如果以前没有单击过,则忽略该单击,然后将该变量设置为true,表示以前单击过 但是,我需要使用class.stopper的第二个链接来将变量重置为false,这样第一个按钮就需要再次单击两次。这是我的密码: $(document).ready(function () { var hasClick = false; if('a').click(function(e)) { if('a').hasC

我目前正在尝试使用click-if语句来检测是否有一个链接被点击。如果以前没有单击过,则忽略该单击,然后将该变量设置为true,表示以前单击过

但是,我需要使用class.stopper的第二个链接来将变量重置为false,这样第一个按钮就需要再次单击两次。这是我的密码:

$(document).ready(function () {

    var hasClick = false;

    if('a').click(function(e)) {
        if('a').hasClass('stopper') {
            e.preventDefault();
            var hasClick = false;
        } else {
            if(hasClick == false) {
                e.preventDefault();
                var hasClick = true;
            }
        }
    }

});
我得到一个未指明的代币。如果是“a”,则此行后出错。单击函数{第5行,实际代码的第三行

这里出了什么问题?我对这类错误的其他问题似乎与我的代码不符,从函数的类型等方面来看

这个半成品在未指明的代币部分下帮助了我,但在如何修复它方面仍然没有运气

因此,这项工作的一个例子是:

hasClick变量为false

按钮1:单击我一次,并将变量hasClick设置为true,但忽略链接,因此在第一次单击我时不要去任何地方。一旦变量为true,则转到链接

按钮2:无论变量是否为真,确保它为假并忽略单击

编辑 例如,这是菜单的外观:

Level 0 Link
  Level 1 Link
  Level 1 Link
    Level 2 Link
    Level 2 Link
      Level 3 Link
      Level 3 Link
Level 0 Link
  Level 1 Link
  Level 1 Link
    Level 2 Link
    Level 2 Link
      Level 3 Link
      Level 3 Link

$(document).ready(function () {

    var hasClick = false;

    $( '.level-0 a' ).on('click', function(e) {
        if( $( this ).hasClass('.level-0 a')) {
            e.preventDefault();
            hasClick = false;
        } else {
            if(hasClick == false) {
                e.preventDefault();
                hasClick = true;
            } else {
                return true;
                hasClick = true;
            }
        }
    });

});

因此,当您单击第一个0级链接时,它会起作用!太好了。但是,当您决定还要单击第二个0级链接时,它不会像第一个0级链接那样阻止该链接被激活并转到该页面。

在您的应用程序中存在一些语法错误和对语法的其他误解 代码

所做的更改是

Moved var hasClick=false;在文档外部就绪。 $'a'。单击时,函数{而不是if'a'。单击函数 在处理程序中使用$this而不是$a。 内部变量值更改为just hasClick=false;,因为它是一个全局变量,如果在函数内部使用var hasClick,它只是一个局部变量。 var hasClick=false; $document.readyfunction{ $'a'。单击,函数E{ 如果$this.hassclass'stopper'{ e、 防止违约; hasClick=false; }否则{ 如果hasClick==false{ e、 防止违约; hasClick=true; } } };
}我认为你的职能应该是:

$(document).ready(function () {
    var hasClick = false;
    $('a').on('click', function(e) {
        if( $(this).hasClass('stopper') ) {
            e.preventDefault();
            var hasClick = false;
        } 
        else {
            if(hasClick == false) {
                e.preventDefault();
                var hasClick = true;
            }
        }
    });
});

在ifI建议您阅读if语句及其在Javascript中的工作方式后,您可能误解了如何在jQuery中绑定到click事件。此外,您似乎使用var重新初始化了变量hasClick。当您说var hasClick=某个内容时,您覆盖了以前的变量并创建了一个新的变量相同的名称。我建议删除单击函数中的两个var关键字。尝试更好地了解javascript中的语法和全局/局部变量。我对jQuery还不太熟悉,公平地说,这个用例不是一个常见的例子。我只是尝试一下,看看哪里出了差错。我尝试了这个方法,它防止了错误所有链接都不会被点击。无论你点击多少次,都不会激活链接。@ow_dj,那么你想在第一次禁用所有链接,并在我们第二次点击时启用它们吗?是的,如果可能的话。我已经用我当前的代码更新了这个问题,该代码可以正常工作,但在整个菜单中似乎不起作用。我将在上面解释。