2013-02-08 4 views
2

Как предотвратить запуск календаря, не только нажав на значок, но и на весь тег? В этом случае, если я пытаюсь сделать это напрямую без детей, это не работает.Как предотвратить событие click по всему диапазону с детьми?

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; 
     }); 
    }); 

ответ

1

EDIT: http://jsfiddle.net/vg4xa/1/

Вы должны установить свой обработчик событий перед Datepicker инициализации, и остановить распространение события:

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

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

Еще проще: '$ (". Disabled i "). Bind ('click', false);'. –

+0

спасибо за подсказку – soju

+0

Спасибо. Я пробовал это решение и все те же результаты. – roza

0

Я знаю, что этот ответ не будет работать на эту тему, но в описании вопроса, есть DatePicker и следующий код работает для меня, чтобы предотвратить Datepicker открытие на пролете или значок календаря нажмите

if (disable) { 
     $('#datetimepicker1').datepicker('_detachEvents'); 
     $('#datetimepicker1').datepicker('_detachSecondaryEvents'); 
    } else { 
     $('#datetimepicker1').datepicker('_attachEvents'); 
     $('#datetimepicker1').datepicker('_attachSecondaryEvents'); 
    } 
Смежные вопросы