Javascript jQuery-未指定的令牌。-具体是什么?
我目前正在尝试使用click-if语句来检测是否有一个链接被点击。如果以前没有单击过,则忽略该单击,然后将该变量设置为true,表示以前单击过 但是,我需要使用class.stopper的第二个链接来将变量重置为false,这样第一个按钮就需要再次单击两次。这是我的密码: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
$(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,那么你想在第一次禁用所有链接,并在我们第二次点击时启用它们吗?是的,如果可能的话。我已经用我当前的代码更新了这个问题,该代码可以正常工作,但在整个菜单中似乎不起作用。我将在上面解释。