单击父项及其子项jquery的事件
我有一个带有单击父项及其子项jquery的事件,jquery,checkbox,onclick,Jquery,Checkbox,Onclick,我有一个带有tr的表,表中有classmsgdetails。在tr.msgdetails中,我有带有classsel\u checkbox的复选框。我有tr元素和checkbox的单击事件,我需要独立操作它。如果单击了checkbox,如果单击的不是复选框,而是tr,则复选框的事件应起作用,而另一个事件应起作用 我的html是这样的 其他一些数据 一些数据 我的jquery如下所示: $(“tr.msgdetails”)。单击(函数(e){ if((e.target.tagName.toLo
tr
的表,表中有classmsgdetails
。在tr.msgdetails
中,我有带有classsel\u checkbox的复选框
。我有tr元素和checkbox
的单击事件,我需要独立操作它。如果单击了checkbox
,如果单击的不是复选框,而是tr
,则复选框的事件应起作用,而另一个事件应起作用
我的html是这样的
其他一些数据
一些数据
我的jquery如下所示:
$(“tr.msgdetails”)。单击(函数(e){
if((e.target.tagName.toLowerCase()='checkbox')||
(e.target.tagName.toLowerCase()=='input'))
{
警报(“选中的复选框”);
}
其他的
{
警报(“单击行”);
}
返回false;
});
这有时会起作用,但效果不太理想。请帮助我代码片段
------------
Html
<div>
<table>
<tr class="msgdetails even" role="row">
<td width="20%">
<div class="checkbox_div">
<input class="sel_checkbox" type="checkbox">
</div>
</td>
<td>some other data</td>
<td>some data </td>
</tr>
</table>
</div>
我建议您对复选框使用更改事件,而不是单击$(“tr.msgdetails”)。单击(函数(e){if((e.target.tagName.toLowerCase()=='checkbox'))| |(e.target.tagName.toLowerCase()=='input')){alert('checked checbox');}否则{alert('row clicked')返回false;});“它有时可以工作,但不能完美工作”-它什么时候不能工作,为什么不能完美工作?当它不能工作时,
e.target.tagName
是什么?单击复选框并不总是意味着选中。如果在单击之前处于选中状态,则将取消选中。你发布的代码在我看来毫无意义。而e.target.tagName.toLowerCase()=='checkbox'
就没什么意义了。不管怎样,我们不知道你期望的行为是什么???
$(document).ready(function() {
$("tr.msgdetails").click(function(e){
if(e.target.type==="checkbox"){
var selCheckBox=$(e.target);
if(selCheckBox.hasClass('sel_checkbox')){
if($(selCheckBox).prop("checked")){
alert('checked checbox');
}
else{
alert('checkbox Unchecked');
}
}
}else{
/*if you dont want checkbox column row outside clicking to be disabled then*/
var selCheckBox=$(e.target);
var chk=$(selCheckBox).children().hasClass("sel_checkbox");
if(chk){
return false;
}
else{
alert('tr clicked');
}
}
});
});