2012-02-17 106 views
0

(「點擊」,功能...)我在用下面的代碼有問題:問題與.bind在IE6-8

$('#datepicker').datepicker({ 
    inline: true, 
    dateFormat: 'dd. MM yy', 
    firstDay: 1, 
    altField: "#date" 
}).bind('click', function() { 
    var userDate = $('#date').val(); 
    $('.date2').html(userDate); 
});​ 

的.bind只是不IE6-8工作,其他任何瀏覽器都可以正常工作。

我在做什麼:點擊#datepicker中的任何元素時,它會將選定的日期推入ID爲'date'的字段。然後我檢查這個字段的值,並將日期推入一個跨度,類爲date2。

任何關於我在做什麼錯誤的建議?

更新: 好的,所以我能夠修復它。現在,所有瀏覽器中正確的代碼都能正常工作。

$('#datepicker').datepicker({ 
    inline: true, 
    dateFormat: 'dd. MM yy', 
    firstDay: 1, 
    altField: "#date", 
    onSelect: function(dateText, inst) { 
    $('.dateOutput').fadeIn(250); 
    $('.date2').html(dateText) 
    } 
}); 

謝謝大家的幫助。

+0

datepicker部分工作?包括將價值推向其他領域?你怎麼確定'bind'不工作,只是沒有看到跨度的結果,或者你是否用[調試器]走過了(http://blog.niftysnippets.org/2011/03/no- excuse.html)或做了一個console.log(IE8開放工具工具)或(顫抖)'alert'? – 2012-02-17 10:32:58

+0

datepicker正在工作,是的。它正在將價值推向該領域。在IE9中運行良好。在綁定函數中添加警報時,它也不會被觸發。 – Andreas 2012-02-17 10:36:57

+0

'@ Andreas':有用的信息(我將它編輯成問題)。非常非常奇怪。你可以在http://jsbin.com或http://jsfiddle.net上覆制這個問題嗎? – 2012-02-17 10:40:17

回答

0

我相當肯定它是DOM is not ready for JavaScript processing問題。

$(document).ready(function() { 
    $('#datepicker').datepicker({ 
     inline: true, 
     dateFormat: 'dd. MM yy', 
     firstDay: 1, 
     altField: "#date" 
    }).bind('click', function() { 
     var userDate = $('#date').val(); 
     $('.date2').html(userDate); 
    }); 
});​ 
+0

它在函數內(function enableDatepicker(){...})。對不起,我沒有提到。 – Andreas 2012-02-17 10:31:16

+0

如果是這種情況,它也會影響其他瀏覽器。 @Andreas:如果你的其他函數在DOM準備好之前被調用,它在另一個函數內並不一定*意味着它不是DOM準備好的東西。 :-)但是,如果你的腳本在頁面末尾,或者你已經在等待一個事件('ready','load',無論什麼),那麼這不是它(它會影響其他瀏覽器) 。 – 2012-02-17 10:33:47