我有一个我正在研究的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的新手,所以我知道我错过了一些简单的东西。有人请告诉我我做错了什么。
答案 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");
});
});
你不需要在桌面上点击事件,除非你想要能够在表格中点击 - 但不是在一行中,这听起来不正确