jQuery - 未指定的标记。 - 什么未指明?

时间:2015-10-16 10:23:08

标签: javascript jquery token

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

然而 ,然后我需要与类.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;
            }
        }
    }

});

我在此行Unspecified token .之后收到if('a').click(function(e)) {错误(第5行,实际代码的第三行)。

这里有什么问题?我对这种错误的其他问题似乎与我所拥有的代码无关,就某种功能而言。

这个半帮助我在未指定的令牌部分,但仍然没有运气如何解决它。 http://davidwalsh.name/fix-javascript-errors

所以这个工作的一个例子是:

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链接一样停止激活链接并转到该页面。

2 个答案:

答案 0 :(得分:1)

您的语法中存在一些语法错误和其他误解 代码。

所做的更改

  1. var hasClick = false;移到document ready
  2. 之外
  3. $('a').on('click',function(e){代替if('a').click(function(e))
  4. 在处理程序中使用$(this)而不是$('a')
  5. 内部的变量值更改只是hasClick = false;,因为它是一个全局变量,如果在函数内使用var hasClick,它只是一个局部变量。
  6. var hasClick = false;
    $(document).ready(function() {
      $('a').on('click', function(e) {
        if ($(this).hasClass('stopper')) {
          e.preventDefault();
          hasClick = false;
        } else {
          if (hasClick == false) {
            e.preventDefault();
            hasClick = true;
          }
        }
      });
    });

答案 1 :(得分:1)

我相信你的功能应该是:

$(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;
            }
        }
    });
});