2015-07-06 2 views
0

я в настоящее время есть много контента, который показывает OnChange события, такие как:Проверка выбранных выпадающих списков при загрузке?

$('input[type="checkbox"][name="ThisBox"]').change(function() { 
    if($(this).is(':checked')){ 
     $('.ThisDiv').css('display', 'block');  
    } else if ($(this).is(':not(:checked)')){ 
     $('.ThisDiv').css('display', 'none');  
    } 
}); 

Есть ли способ выполнения этих проверок при загрузке страницы, а также, когда параметр изменяется?

+2

Поместите обработчик своей собственной имени функции, и прикрепить '' onchange' и onload' событий в этой функции. – Teemu

ответ

1

Вы можете использовать $.trigger. Вам просто нужно уволить его после всех обработчиков связаны (то есть право в конце вашего скрипта) ...

$(document).ready(function(){ 
    $('input[type="checkbox"]').trigger('change'); 
}); 

Это приведет все change обработчиков активироваться на всех checkbox элементов.

Альтернатива реорганизовать:

var checkboxHandler = function(){ 
    if($(this).is(':checked')){ 
     $('.ThisDiv').css('display', 'block');  
    } else if ($(this).is(':not(:checked)')){ 
     $('.ThisDiv').css('display', 'none');  
    } 
}; 

$('input[type="checkbox"][name="ThisBox"]').change(checkboxHandler).each(checkboxHandler); 

Here's a fiddle of the second.

+1

Я пошел с альтернативой ... Я изменил, если ($ (this) .is к определенному идентификатору, так как есть несколько флажков и т. Д., Поэтому использование этой проблемы было проблемой. – BN83

0

вы можете поместить код в отдельную функцию и вызвать его на документ, готовый событие и OnChange событий;

$('input[type="checkbox"][name="ThisBox"]').change(function() { 
    checker($(this)); 
}); 

function checker(data){ 
if(data.is(':checked')){ 
     $('.ThisDiv').css('display', 'block');  
    } else if (data.is(':not(:checked)')){ 
     $('.ThisDiv').css('display', 'none');  
    } 
}; 
+0

Итак, у меня было бы множество различных триггеров для функция должна срабатывать, но все они будут удерживаться под одной «контрольной» функцией? Так что даже при выпадающих меню и т. д. – BN83

0

Используйте on вместо этого на change, как это:

$('input[type="checkbox"][name="ThisBox"]').on("load change", function() { 
    if($(this).is(':checked')){ 
     $('.ThisDiv').css('display', 'block');  
    } else if ($(this).is(':not(:checked)')){ 
     $('.ThisDiv').css('display', 'none');  
    } 
}); 
+0

Это не имеет никакого эффекта, это потому, что он спрашивает, когда флажок загружен, а не когда загружается страница? – BN83

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