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

时间:2015-01-14 08:58:12

标签: javascript jquery conditional-statements

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

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

2 个答案:

答案 0 :(得分:1)

正如Boldewyn所提到的,很可能你的问题是你正在定义一个全局变量c。但是如果你想完全避免这个变量,可以通过jQuery contact-button函数检查hasClass的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');
    ...
  }
});

答案 1 :(得分:0)

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

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