如何在不使用模数的情况下编写此函数

How can I write this function without using a modulo?

本文关键字:情况下 函数      更新时间:2023-09-26

我想知道是否有另一种方法可以在不使用模的情况下编写此函数。我意识到我有另一段代码需要我单击 #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');
    }
});

编辑:稍微改变了问题。对不起,最后一个太宽泛了。

正如 Boldewyn 所提到的,很可能你的问题在于你正在定义一个全局变量c 。但是如果你想完全避免这个变量,你可以通过jQuery hasClass函数检查contact-button的CSS类,即

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

代码干扰了其他代码,因为您隐式生成了一个全局变量c。可能的解决方法:使用 IIFE:

(function() {
  var c = 0;
  /* rest of your code above ... */
})();