Ajax调用连续发生2次?

时间:2012-10-20 20:58:20

标签: jquery html ruby-on-rails ruby-on-rails-3 html5

我有一个我正在研究的rails应用程序,它表现出我无法理解的行为。我有一个html文件:

<h1>Hello World</h1>
  <table>
    <tr>
        <td>Hello</td>
    </tr>
    <tr>
        <td>Hello</td>
    </tr>
    <tr>
        <td>Hello</td>
    </tr>
    <tr>
        <td>Hello</td>
    </tr>
</table>

然后我有一个javascript(jquery真的)文件,当有人点击表格中的一行时我会点击该文件。

$(document).ready(function(){
  $("tr", "table").click(function(){
    console.log("TEST");
  });
});

每当我点击表格中的一行时,该函数被调用2次。我在控制台中两次“测试”。我是jquery和rails的新手,所以我知道我错过了一些简单的东西。有人请告诉我我做错了什么。

3 个答案:

答案 0 :(得分:2)

它计算“tr”和“table”的点击次数

尝试

$(document).ready(function(){
  $("tr").click(function(){
    console.log("TEST");
  });
});

答案 1 :(得分:2)

正如这些家伙所说的,它正在发生,因为每个tr都在一个表内,所以这是一个正确的行为。如果你想避免它,我相信阻止事件传播会起作用:

$(document).ready(function(){
  $("tr", "table").click(function(e){
    e.stopPropagation();
    console.log("TEST");
  });
});

答案 2 :(得分:0)

点击表单击并点击tr点击这个

$(document).ready(function(){
  $("tr").click(function(){
    console.log("TEST");
  });
});

你不需要在桌面上点击事件,除非你想要能够在表格中点击 - 但不是在一行中,这听起来不正确