在表格中两次射击事件

时间:2011-06-29 02:40:15

标签: jquery

每当输入更改发生时,我都会尝试触发父点击事件。 下面是我的代码,它是两次触发Click事件。

                  $('TABLE TBODY TR TD INPUT').change(function()
                  {
                   $(this).parents('TD').click();
                  });
                  $('TABLE TBODY TR TD').click(function()
                  {
                   alert("Clicked me...");
                  });

这是我的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>

错误在哪里......

2 个答案:

答案 0 :(得分:1)

尝试类似的东西。 this

$('TABLE TBODY TR TD INPUT').change(function() {
   alert("Clicked me...");
});

答案 1 :(得分:1)

$('TABLE TBODY TR TD INPUT').change(function() {
    clicky(this.parents('TD'));
});
$('TABLE TBODY TR TD').click(function clicky(parentElement) {
    alert("Clicked me...");
});

所以input也在td中,因此两者都被点击了。     这只会返回一个警报,但我感觉你不想提醒,而是改变父元素。

但我敢打赌你可能想要以下

$('TABLE TBODY TR TD INPUT').change(function() {
    clicky($(this).parents('TD'));
});

 function clicky(parentElement) {
    $(parentElement).toggleClass('clicked');

};

直播示例:http://jsfiddle.net/nFtzJ/

每次输入更改时,父<td>都有类.clicked切换,当然这可以更改,但在生产中使用alert();几乎是一个失礼。