2011-01-24 6 views

Odpowiedz

82

Można użyć metody jQuery .trigger(). Zobacz http://api.jquery.com/trigger/

np

$('#foo').trigger('click'); 
+1

To jest to czego chcę, dzięki .. –

+11

Możesz również po prostu zadzwonić' $ ('# foo ') .click() ', co efektywnie robi to samo. –

+1

Jak to zrobić z czystym JavaScript? – Paul

13

Pierwsze Sprawdź stan

var checked = $("#selectall").is(":checked"); 

Następnie do ustawiania

$("input:checkbox").attr("checked",checked); 
+6

nie próbował tego z ' attr' jak używam 'prop' obecnie, ale ta metoda sprawdza tylko pola, nie uruchamia zdarzenia click dla każdego później – EvilDr

6

Można użyć .change() funkcję zbyt

np.

$('form input[type=checkbox]').change(function() { console.log('hello') }); 
2

nie gQuery

document.getElementById ('your_box') onclick();

Użyłem pewnej klasy w moich polach wyboru.

var x = document.getElementsByClassName("box_class"); 
var i; 
for (i = 0; i < x.length; i++) { 
    if(x[i].checked) x[i].checked = false; 
    else x[i].checked = true; 
    x[i].onclick(); 
    } 
3

Funkcja wyzwalacza z jQuery może być odpowiedzią.

jQuery docs says: Wszystkie dołączone do obsługi zdarzeń .on() lub jeden z jego metod skrótów są uruchamiane, gdy wystąpi odpowiedni zdarzenia. Można je jednak uruchomić ręcznie, za pomocą metody .trigger(). Wezwanie do .trigger() realizuje programy obsługi w tej samej kolejności byliby jeśli zdarzenie zostało wywołane w sposób naturalny przez użytkownika

Zatem najlepszym rozwiązaniem jedna linia powinna być:

$('.selector_class').trigger('click'); 

//or 

$('#foo').click(); 
Powiązane problemy