2010-12-17 3 views
0

Я хочу запустить часть функции, когда страница изначально загружается, но большая часть события change должна запускаться только тогда, когда цель затем взаимодействует.события изменения jQuery на docready

Проблема в том, что эти два события не связаны друг с другом - при загрузке страницы я хочу показать определенные div, а затем я хочу, чтобы действие щелчка отображало/скрывало div. Я могу заставить эти две части работать отдельно, но не смог их комбинировать.

Мой вопрос: какой лучший способ достичь этого разделения? Есть ли метод в jQuery, который говорит: «Только запустить эту часть один раз» или «запустить эту часть на загрузке страницы, эта часть onclick»?

В качестве примера, у меня есть код, который загружает на Docready (который использует .change(); так, что он работает сразу):

$(function() { 
    $('.trigger :checkbox').change(function() { 
    $(this).parent().nextAll('ul.hidden').toggle(this.checked); 
    }).change(); 
}); 

Но я ALSE хочу, чтобы запустить этот код, когда кто-то нажимает на одну из моих .trigger классы:

$('.trigger :checkbox').change(function() { 
    var $target = $(this).parent().nextAll('.hidden'); // go up a level and then look for the next list with the hidden class 
    $(this).parent().toggleClass('open'); // the class of the label needs to change, so find the parent of the checkbox 
    $target.fadeToggle(); 
    if($(this).is(':checked')) { 
     $target.find('.hidden').css('display', 'none'); // hide all submenus 
    } else { 
     $target.find(':checkbox').removeAttr('checked'); // untick all checkboxes in sub-menu if unchecking 
    }                     
}); 

В настоящее время событие click очень запутанно.

+1

Я не уверен, я понимаю, что вы хотите. Вы хотите запускать некоторые события при загрузке страницы и другое событие при нажатии элемента? Как это http://jsfiddle.net/yg7f9/? – alexn 2010-12-20 08:56:56

+0

Тип; моя проблема в том, что моя функция (ы) изменения должна применяться к этой же самой вещи, поэтому я могу использовать это. Имеет ли это смысл? – CherryFlavourPez 2010-12-20 09:10:27

ответ

0

Вы должны разделить вне «функциональности» в функцию и затем вызывать различные функции от загрузки страницы и события изменения:

$(function() { 

doSomething(); 

$("#selectElement").change(doSomething()); 

}); 

function doSomething() {} 
Смежные вопросы