jquery .bind предотвращает запуск при загрузке страницы - PullRequest
0 голосов
/ 15 июня 2011

У меня есть функция jquery, которая связывает поле выбора в форме с несколькими действиями.Он привязывается как к изменениям, так и к нажатию клавиш, поэтому захваты мыши и клавиатуры фиксируются.

$(document).ready(function(){
  $('#user_id').bind('change keyup',function () {
    calculateAmounts();
  }).change();
});

Это работает отлично.

Однако в дополнение к выполнению функций change и keyup, функция calcAmounts () также вызывается при первой загрузке страницы.Я бы хотел запретить запуск этого кода при первой загрузке страницы.

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Вы запускаете событие изменения, когда вызываете .change () для элемента $ ('# user_id'), который вызывает ваш обработчик события change / keyup. Если вы удалите вызов .change (), это событие не будет запущено при загрузке страницы:

$(document).ready(function(){
  $('#user_id').bind('change keyup',function () {
    calculateAmounts();
  });
});
0 голосов
/ 15 июня 2011

попробуйте это (принимая во внимание, что #user_id является полем ввода)

$(document).ready(function(){
  var yourVAL = $("#user_id").val();
  $('#user_id').bind('change keyup',function () {
    if($("#user_id").val() != yourVAL){
        calculateAmounts();
    } 
  }).change();
});
...