我目前正在尝试使用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链接一样停止激活链接并转到该页面。
答案 0 :(得分:1)
您的语法中存在一些语法错误和其他误解 代码。
所做的更改
var hasClick = false;
移到document ready
。$('a').on('click',function(e){
代替if('a').click(function(e))
$(this)
而不是$('a')
。hasClick = false;
,因为它是一个全局变量,如果在函数内使用var hasClick
,它只是一个局部变量。
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;
}
}
});
});