2013-02-08 72 views
2

如何防止觸發日曆,不僅通過點擊圖標,而是整個標籤?在這種情況下,如果我試圖直接做到這一點,沒有兒童選擇它不起作用。如何防止兒童在整個跨度上發生點擊事件?

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

編輯:http://jsfiddle.net/vg4xa/1/

你必須設置日期選擇器初始化之前事件處理程序,並停止事件傳播:

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

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

甚至更簡單:'$(「。disabled i」)。bind('click',false);'。 – 2013-02-08 13:38:12

+0

感謝提示 – soju 2013-02-08 13:38:48

+0

謝謝。我試過這個解決方案,仍然是相同的結果。 – roza 2013-02-08 13:45:04

0

我知道這個答案不會爲主題的工作,但在這個問題說明,有一個datepicker和下面的代碼爲我工作,以防止跨度或日曆圖標,日期選擇器打開點擊

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