admin管理员组文章数量:1435859
I have some html like this:
<div class="vmail vmail-bar normal-vmail-bar" id="pm_<?php echo $pm->to_id; ?>">
<div class="checkbox"><input type="checkbox" class="checkbox" /></div>
<div class="vmail-from">
<?php echo $pm->Prenume." ".$pm->Nume; ?>
</div>
<div class="vmail-content-title"><?php echo $pm->subject; ?> </div>
</div>
and the following Jquery:
// Read message - bind click on entire div ( the div includes the checkbox)
container.find('.vmail').bind('click', function() {
var id = $(this).attr('id').replace("pm_","");
getPM(id);
});
// bind click on checkbox
container.find(':checkbox').bind('click', function() {
if($(this).is(':checked')) {
...
} else {
...
}
});
both methods are tested and they worked, but after I did the bind on entire div (.vmail) , when I click on the input checkbox the event bined to the checkbox does not work and the event for the div is fired instead.
I want the event responsible for the checkbox click to fire and the div click to be canceled if I press click on the checkbox.
I have some html like this:
<div class="vmail vmail-bar normal-vmail-bar" id="pm_<?php echo $pm->to_id; ?>">
<div class="checkbox"><input type="checkbox" class="checkbox" /></div>
<div class="vmail-from">
<?php echo $pm->Prenume." ".$pm->Nume; ?>
</div>
<div class="vmail-content-title"><?php echo $pm->subject; ?> </div>
</div>
and the following Jquery:
// Read message - bind click on entire div ( the div includes the checkbox)
container.find('.vmail').bind('click', function() {
var id = $(this).attr('id').replace("pm_","");
getPM(id);
});
// bind click on checkbox
container.find(':checkbox').bind('click', function() {
if($(this).is(':checked')) {
...
} else {
...
}
});
both methods are tested and they worked, but after I did the bind on entire div (.vmail) , when I click on the input checkbox the event bined to the checkbox does not work and the event for the div is fired instead.
I want the event responsible for the checkbox click to fire and the div click to be canceled if I press click on the checkbox.
Share Improve this question asked Dec 13, 2010 at 14:58 RevelationRevelation 891 gold badge3 silver badges11 bronze badges 1- it sounds stupid but give the css z-index a try! and put the check-box over the div! – user529649 Commented Dec 13, 2010 at 15:01
1 Answer
Reset to default 4You might want to look at the stopPropagation
method on events. This will prevent it from 'bubbling' to parent elements.
container.find(':checkbox').bind('click', function(ev) {
ev.stopPropagation();
if($(this).is(':checked')) {
...
} else {
...
}
});
本文标签: javascriptJQuery bind click event on divStack Overflow
版权声明:本文标题:javascript - JQuery bind click event on div - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745674845a2669789.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论