2015-01-14 2 views
0

Мне интересно, есть ли другой способ написать эту функцию, не используя по модулю. Я понял, что у меня есть еще один фрагмент кода, который требует, чтобы я нажал кнопку # обложки для почты, и это приводит к тому, что количество кликов влияет на эту функцию.Как я могу написать эту функцию без использования модуля?

Это просто простой переключатель. Я не слишком хорош с условностями.

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

Редактировать: немного изменил вопрос. Извините, последний был слишком широким.

+0

Почему вы ожидаете, что-нибудь случилось? Вы делаете HTTP-запрос и ничего не делаете с ответом. – Quentin

+0

откройте свои инструменты разработчика в chrome или firebug в firefox и посмотрите вкладку сети, когда вы нажимаете на ссылку, там вы можете увидеть, отправляется ли запрос ajax. – cari

+0

Найдите себе вводный * Ajax с учебником jQuery *. – Quentin

ответ

1

Как уже упоминалось Boldewyn, скорее всего, ваша проблема в том, что вы определяете глобальную переменную c. Но если вы хотите, чтобы избежать этой переменной полностью можно проверить для CSS-класса contact-button через hasClass функции JQuery, т.е.

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

Код мешает другому коду, потому что вы неявно сгенерировали глобальную переменную c. Возможные исправления: Используйте IIFE:

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

Извините, я не был чист. Я обновил вопрос. В основном это потому, что у меня есть еще один фрагмент кода, который требует, чтобы я нажал кнопку '# mail-wrap', и это уменьшает количество кликов. – J82

Смежные вопросы