Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JQuery中触发单击事件_Jquery - Fatal编程技术网

在JQuery中触发单击事件

在JQuery中触发单击事件,jquery,Jquery,示例jquery代码有什么问题?我试图在单击表行或复选框时选择表行和复选框。我的理解是,事件在DOM树上冒泡,因此使用e.stopPropagation;在每个复选框中,处理程序都将防止再次触发行单击事件。单击某行时可以看到错误,由于某种原因,复选框再次被取消选中 谢谢。。正如评论所说,你可以做得比现在简单得多。我的方式只是其中之一。代码应该是相当自解释的 HTML 只是因为 是否一次只选择一行?一次只选中一个复选框,单击后,再也不允许选择该行?@JamWaffles-在本例中,是一次只选择一行

示例jquery代码有什么问题?我试图在单击表行或复选框时选择表行和复选框。我的理解是,事件在DOM树上冒泡,因此使用e.stopPropagation;在每个复选框中,处理程序都将防止再次触发行单击事件。单击某行时可以看到错误,由于某种原因,复选框再次被取消选中

谢谢。

。正如评论所说,你可以做得比现在简单得多。我的方式只是其中之一。代码应该是相当自解释的

HTML 只是因为
是否一次只选择一行?一次只选中一个复选框,单击后,再也不允许选择该行?@JamWaffles-在本例中,是一次只选择一行,但否,不允许再次选择该行。简单地使用tr单击来选择..id模式匹配是一种严重的jQuery反模式。每次我看到这些,我就知道它们是龙。当您想将功能组分配给多个元素时,请使用类或数据-*。@mu太短了-这是我试图在我的应用程序中实现的简化版本。正如您所看到的,一些ID有一个类型,因此这些常见类型将被全局和单独选择。@Steffan Kendall-真的吗?我认为选择器的通配符功能是jquery的优势之一?好吧,看到您的解决方案非常有趣,但您已经更改了许多要求。正如我所说,必须使用复选框,因为在更复杂的现实世界示例中,我正在全局选择id中具有公共类型的行集。现在只能单击td而不能单击该行,尽管我接受将label类分配给所有tds。@JEZ这是一个最小的实现。您应该能够使代码适应您的需要。您需要为这两个选项都添加一些复选框处理代码。单击函数并稍微更改选择器和类。
<table>
    <tr>
        <td><input type="radio"name="radio"></td>
        <td class="label">Row 1</td>
    </tr>
    <tr>
        <td><input type="radio" name="radio"></td>
        <td class="label">Row 2</td>
    </tr>
    <tr>
        <td><input type="radio"name="radio"></td>
        <td class="label">Row 3</td>
    </tr>
</table>
$(document).ready(function() {
    $("td.label").click(function() {
        $(this).parents("tr").addClass("selected").siblings().removeClass("selected");
        $(this).parents("tr").find("input").click();
    });

    $("td > input").click(function() {
        $(this).parents("tr").addClass("selected").siblings().removeClass("selected");
    });
});
.selected td
{
    background-color: #e1e1e1;
}