如何在不使用模数的情况下编写此函数?
How can I write this function without using a modulo?
我想知道是否有另一种不使用模数来编写此函数的方法。我意识到我有另一段代码需要我点击 #mail-wrap 按钮,这样做会扰乱影响此功能的点击次数。
这只是一个简单的开关。我不太擅长条件句。
$('#mail-wrap').click(function (e) {
e.preventDefault();
var c = 0;
if (c++ % 2 == 0) {
$('#contact-button').addClass('project-button').text('Projects');
} else {
$('#contact-button').removeClass('project-button').text('Get in touch');
}
});
编辑:稍微更改了问题。抱歉,最后一个太宽泛了。
该代码正在干扰其他代码,因为您隐式生成了一个全局变量 c
。可能的修复:使用 IIFE:
(function() {
var c = 0;
/* rest of your code above ... */
})();
正如 Boldewyn 所提到的,您的问题很可能是您正在定义一个全局变量 c
。但是如果你想完全避免这个变量,你可以通过 jQuery hasClass
函数检查 CSS-class of contact-button
函数,即
$('#mail-wrap').click(function (e) {
...
var contactButton = $('#contact-button');
if (!contactButton.hasClass('project-button')) {
$('#contact-button').addClass('project-button').css('width', '71px').text('Projects');
...
} else {
$('#contact-button').removeClass('project-button').css('width', '96px').text('Get in touch');
...
}
});
我想知道是否有另一种不使用模数来编写此函数的方法。我意识到我有另一段代码需要我点击 #mail-wrap 按钮,这样做会扰乱影响此功能的点击次数。
这只是一个简单的开关。我不太擅长条件句。
$('#mail-wrap').click(function (e) {
e.preventDefault();
var c = 0;
if (c++ % 2 == 0) {
$('#contact-button').addClass('project-button').text('Projects');
} else {
$('#contact-button').removeClass('project-button').text('Get in touch');
}
});
编辑:稍微更改了问题。抱歉,最后一个太宽泛了。
该代码正在干扰其他代码,因为您隐式生成了一个全局变量 c
。可能的修复:使用 IIFE:
(function() {
var c = 0;
/* rest of your code above ... */
})();
正如 Boldewyn 所提到的,您的问题很可能是您正在定义一个全局变量 c
。但是如果你想完全避免这个变量,你可以通过 jQuery hasClass
函数检查 CSS-class of contact-button
函数,即
$('#mail-wrap').click(function (e) {
...
var contactButton = $('#contact-button');
if (!contactButton.hasClass('project-button')) {
$('#contact-button').addClass('project-button').css('width', '71px').text('Projects');
...
} else {
$('#contact-button').removeClass('project-button').css('width', '96px').text('Get in touch');
...
}
});