2013-09-04 2 views
1

У меня есть глупый простой JQuery .js-файл. Я занят созданием, и я застреваю на первом шаге.Функция продолжает работать повторно JQuery

В настоящее время у меня есть настройка, как показано ниже, и каждый раз, когда я нажимаю единственную кнопку на странице (кнопка отправки страницы входа в систему), она перезагружает всю страницу и снова запускает первую функцию.

Как я получить функцию только один раз запустить

$(document).ready(function() { 
    // 
    // FUNCTIONS 
    // 

    function AllFade() { 
     //Hide everything 
     $('div').hide() 

     //Fade Everything in 
     $('div').fadeIn(1000); 

     //Hide All Alerts 
     $('.alert').hide(); 
    } 

    function LoginCheck() { 
     //Check username and pass 
    } 

    // EVENTS  

    //START SEQUENCE 
    AllFade(); 

    //Login check on submit 
    $('.btn').click(function() { 
     LoginCheck(); 
    }) 
}); 

!! EDIT !!

кодирование баттона это точно:

<button class="btn btn-large btn-primary">Sign in</button> 

Would, что до сих пор вызывает перезагрузку?

+2

Ваша кнопка является якорной меткой с href = "", поэтому она будет "", которая является текущей страницей, вызывая перезагрузку. Это поведение по умолчанию для привязывающего тега. –

+1

Возможный дубликат [Запретить ссылку для перезагрузки страницы] (http://stackoverflow.com/questions/18575623/prevent-a-link-to-reload-page) – Sergio

ответ

5

Вам необходимо предотвратить отправку (событие) формы с помощью .preventDefault(), чтобы она не выполняла по умолчанию: отправьте форму и перезагрузите страницу.

$('.btn.btn-large.btn-primary').click(function(event) { 
    //if only button on page you can have just $('button') 
    event.preventDefault() 
    LoginCheck(); 
}) 

Вы также можете добавить type="button", если вы не хотите использовать button в качестве кнопки отправки, поскольку кнопка элемент имеет тип по умолчанию представить:

<button type="button" class="btn btn-large btn-primary">Sign in</button> 


Вы можете прочитать здесь:

jQuery docs: .preventDefaul()

+0

Хотя поведение похоже (идентично), 'preventDefault 'вызывается не для родного события. Это событие «Событие» jQuery. Я не думаю, что MDN - это подходящее место для цитирования. http://api.jquery.com/event.preventDefault/ – Ian

+2

Хороший пункт @Ian, MDN появился первым в моем поиске. Просто поправил его. Спасибо – Sergio

+0

Отредактированный основной вопрос. Повторите попытку @Sergio – Skowt

1

Добавить событие и использовать .preventDefault(), чтобы предотвратить перезагрузку страницы.

$('.btn').click(function(e) { 
    e.preventDefault(); 
    LoginCheck(); 
}); 
Смежные вопросы