2016-11-07 5 views
0

Я определил функцию jQuery, которая запускается при изменении ввода (отображение/скрытие определенных div). Все идет нормально.Вызов функции jQuery один раз на загрузке страницы

Мой вопрос: Как я могу назвать эту функцию один раз, когда страница загружается?

С моей нехваткой опыта я просто делаю это хуже, пытаясь найти ответы, которые я нашел до сих пор (перетаскивание функций за пределы декларации документа и т. Д.). Я предполагаю, что функции должны оставаться там, где они есть, но называть их пока не работает. Сценарий:

jQuery(document).ready(function($) { 

    $('input[name=project-type]').change(chooseProject); 

    function chooseProject() { 
     var val = $(this).val(); 
     $('#div1').hide();  
     $('#div2').hide(); 
     $('#div3').hide(); 
     if (val == 'Short') { 
      $('#div1').show(); 
     } 
     else if (val == 'Long') { 
      $('#div1').show(); 
      $('#div3').show(); 
     } 
     } 

    }); 

Некоторого фон: вход кнопка радио, и через многоэтапной контакт с образованием выбранного варианта запоминается на новом PageLoad, однако без события изменения функции не пинать в.

После того, как часовая работа по борьбе очень ценится!

ответ

2

Вы можете trigger изменить событие на этом элементе после того, как вы его связали. Это выполняет обработчик, как если бы он был вызван пользователем пользователем.

Я хотел бы попробовать что-то вроде этого:

jQuery(document).ready(function($) { 
    //function declaration 
    $('input[name=project-type]').on('change', chooseProject); 
    $('input[name=project-type]').trigger('change'); 
}); 
+0

Спасибо, я стараюсь, хотя пока не удалось. Я подозреваю, что причиной может быть то, что ввод, который запоминается, вставлен после загрузки страницы, так как на короткое время я вижу параметр по умолчанию, выбранный до его переключения. Думаю, запуск запускается слишком рано? Не уверен, есть ли у вас предложения, я могу принять это, поскольку он отвечает на исходный вопрос. – MrOrange

+0

Если вход добавлен после привязки события «change», он не будет работать, потому что элемент, на который вы нацеливаете jQuery, в это время не будет существовать (или заменяется новым элементом при загрузке страницы). Однако вы можете связать событие и активировать изменение после замены ввода. – Sharlike

+0

Элемент ввода существует, выбранная опция (значение) изменяется вскоре после загрузки страницы. Извините за то, что я не понимаю. Но если выбранная опция изменена через другой (плагин) скрипт, не будет ли это считаться событием изменения? Или пользователь должен выбрать вариант вручную? – MrOrange