jQuery .on()tr单击事件使用.not()on tr复选框单击?

tri*_*t77 4 javascript checkbox jquery click live

所以我的标题可能令人困惑,但它有正确的细节.我有一个可点击行的表.单击该行时,该行突出显示.该表还有一个复选框列.单击该复选框不应突出显示或从行中删除突出显示.我怎样才能正确使用.not()或:不在.on('click','tr',function(){...})?http://jsfiddle.net/vmu0p2oe/

$('table').on('click', 'tr', function () {
                if ($(this).hasClass('selected')) {
                    $(this).removeClass('selected');
                    //$(this).find(":checkbox").prop("checked", false);
                }
                else {
                    $('tr.selected').removeClass('selected');
                    $(this).addClass('selected');
                    //$(this).find(":checkbox").prop("checked", true);
                }

            });
Run Code Online (Sandbox Code Playgroud)

tco*_*ooc 7

将其添加到处理程序的开头:

if($(e.target).is('input[type=checkbox]')) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

如果单击的元素是复选框,这将阻止处理程序运行.

小提琴:http://jsfiddle.net/vmu0p2oe/1/