Eu estou tentando disparar o evento de clique pai sempre que uma mudança de entrada acontece. Abaixo está o meu código, ele está disparando o evento Click por duas vezes.
$("TABLE TBODY TR TD INPUT").change(function()
{
$(this).parents("TD").click();
});
$("TABLE TBODY TR TD").click(function()
{
alert("Clicked me...");
});
Aqui está o meu código HTML
<table>
<tr><td>foo<input type="radio"></td><td>foo<input type="checkbox"></td></tr>
<tr><td>foo<input type="radio"></td><td>foo<input type="checkbox"></td></tr>
<tr><td>foo<input type="radio"></td><td>foo<input type="checkbox"></td></tr>
</table>
Onde está o erro ...
Respostas:
1 para resposta № 1$("TABLE TBODY TR TD INPUT").change(function() {
clicky(this.parents("TD"));
});
$("TABLE TBODY TR TD").click(function clicky(parentElement) {
alert("Clicked me...");
});
então o input
também está em td
então ambos estão sendo clicados. isso só retorna um alerta, mas tenho a sensação de que você não quer alertar, mas sim alterar o elemento pai.
mas eu aposto que você provavelmente quer o seguinte
$("TABLE TBODY TR TD INPUT").change(function() {
clicky($(this).parents("TD"));
});
function clicky(parentElement) {
$(parentElement).toggleClass("clicked");
};
exemplo ao vivo: http://jsfiddle.net/nFtzJ/
aqui toda vez que a entrada muda, o pai <td>
tem a classe .clicked toggled, claro que isso pode ser alterado, mas é quase um faux pas para usar alert();
em produção.
1 para resposta № 2
tente algo parecido. esta
$("TABLE TBODY TR TD INPUT").change(function() {
alert("Clicked me...");
});