2012-02-17 12 views
0

に、私は次のコードに問題抱えている:問題(「クリック」、機能...)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「日付」のフィールドにプッシュされます。次に、私はこのフィールドの値をチェックし、クラス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'を実行しましたか? –

+0

datepickerが動作しています。それはフィールドに値をプッシュしています。 IE9で正常に動作します。バインド機能内にアラートを追加するときは、トリガーされません。 – Andreas

+0

'@ Andreas':役に立つ情報(私は質問にそれを編集するだろう)。そして、非常に、非常に奇妙な。 http://jsbin.comまたはhttp://jsfiddle.netで問題を再現できますか? –

答えて

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

関数内にあります(関数enableDatepicker(){...})。申し訳ありませんが、私はそれを言及しなかった。 – Andreas

+0

この場合、他のブラウザにも影響します。 @Andreas:別の関数内にあるということは、DOM準備が整う前に他の関数が呼び出されていれば、必ずしもDOM準備ができていないことを意味するわけではありません。 :-)しかし、スクリプトがページの最後にある場合や、イベント( 'ready'、' load'など)を待っている場合、これはそうではありません(それは他のブラウザにも影響します) 。 –