Existe alguma maneira de executar o mesmo código para diferentes elementos na página?
$('.class1').click(function() {
some_function();
});
$('.class2').click(function() {
some_function();
});
em vez disso, faça algo como:
$('.class1').$('.class2').click(function() {
some_function();
});
obrigado
.add()
obras com jQuery objetos também$('.class1, .class2')
e$('.class1').add('.class2')
? em que caso devemos usar.add()
?Eu normalmente uso em
on
vez declick
. Isso me permite adicionar mais ouvintes de eventos a uma função específica.Espero que ajude!
fonte
Coloque um espaço como $ ('. Class1, space here.class2'), caso contrário não funcionará.
fonte
Basta usar
$('.myclass1, .myclass2, .myclass3')
para vários seletores. Além disso, você não precisa de funções lambda para vincular uma função existente ao evento click.fonte
Outra alternativa, supondo que seus elementos sejam armazenados como variáveis (o que geralmente é uma boa ideia se você os estiver acessando várias vezes em um corpo de função):
Aproveita o encadeamento do jQuery e permite usar referências.
fonte
Se você possui ou deseja manter seus elementos como variáveis (objetos jQuery), também pode fazer um loop sobre eles:
fonte
Adicione uma lista separada por vírgula de classes como esta:
fonte
Podemos codificar como segue também, usei o evento blur aqui.
fonte
Eu tenho um link para um objeto que contém muitos campos de entrada, que precisam ser manipulados pelo mesmo evento. Então, eu simplesmente uso find () para obter todos os objetos internos, que precisam ter o evento
Caso seus objetos estejam em um nível abaixo, o método children (), em vez disso, find () pode ser usado.
fonte
Além dos excelentes exemplos e respostas acima, você também pode fazer uma "busca" para dois elementos diferentes usando suas classes. Por exemplo:
Isso deve gerar "HelloWorld".
fonte