如何防止儿童在整个范围内发生点击事件?

时间:2013-02-08 13:23:05

标签: javascript jquery twitter-bootstrap

如何防止触发日历,不仅可以点击图标,还可以点击整个标签?在这种情况下,如果我试图直接执行此操作而没有子选择器,则它不起作用。

My implementation

HTML:

<div id="datetimepicker1" class="input-append date">
    <input type="text" disabled="true"></input> 
    <span class="add-on disabled">
      <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
    </span>
</div>

JS:

  $(function () {
      $('#datetimepicker1').datetimepicker();

      $(".disabled").children().bind('click', function () {
          return false;
      });
  });

2 个答案:

答案 0 :(得分:1)

编辑:http://jsfiddle.net/vg4xa/1/

您必须在datepicker init之前设置事件处理程序,并停止事件传播:

$(function () {
    $('.disabled').bind('click', function(e){
        e.stopImmediatePropagation();
    });

    $('#datetimepicker1').datetimepicker();
});

答案 1 :(得分:0)

我知道这个答案对主题不起作用,但在问题描述中,有一个日期选择器,下一个代码可以阻止日期选择器打开跨度或日历图标点击

    if (disable) {
        $('#datetimepicker1').datepicker('_detachEvents');
        $('#datetimepicker1').datepicker('_detachSecondaryEvents');
    } else {
        $('#datetimepicker1').datepicker('_attachEvents');
        $('#datetimepicker1').datepicker('_attachSecondaryEvents');
    }