javascript - JQuery bind click event on div - Stack Overflow

I have some html like this:<div class="vmail vmail-bar normal-vmail-bar" id="pm_<?

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
Add a ment  | 

1 Answer 1

Reset to default 4

You 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 {
     ...
    }
});  

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745674846a4639624.html

相关推荐

  • javascript - JQuery bind click event on div - Stack Overflow

    I have some html like this:<div class="vmail vmail-bar normal-vmail-bar" id="pm_<?

    21天前
    40

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信