繁体   English   中英

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

[英]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');
    }
});

编辑:改变了一点问题。 抱歉,最后一个范围太广。

正如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 ... */
})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM