8

Uncaught TypeError: Object [object Object] has no method 'datepicker'ここで私のjavascriptでエラーが発生しています:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>
<script type='text/javascript'>
$(function() {
    $("#birthday").datepicker({changeMonth: true});
});
</script>

追加しようとしている誕生日アイテムは次のとおりです。

<!--// BIRTHDAY //-->
<li class="field">
    <label for="birthday">Birthday</label>
    <div class="field"><input type="text" id="birthday" name="birthday" value="" class="" /></div>
</li>

ご覧のとおり、datepicker を使用しようとしている場所のすぐ上に jquery ui のソースを含めています。http://jqueryui.com/docs/Downloading_jQuery_UIから URL を取得したので、有効な URL であると確信しています。また、ファイルをアップロードしてローカル コピーにリンクしようとしましたが、それでも同じエラーが発生しました。他に何を試すことができますか?

編集:

これを使用して jquery ライブラリをロードし、次<script type="text/javascript" src="/includes/js/jquery-1.7.2.min.js"></script>のスクリプトで検証しました。

if (jQuery) {
    alert("jQuery library is loaded!");
}
4

4 に答える 4

23

jQuery議論の結果、 $ 変数 ( のエイリアス) が正常に動作していないことがわかりました。通常、これは別の JS プラグインが別の$ものを表すように変更されたためです。これを回避するには、jQuery コードを次のようにラップします。

jQuery(function($){
    //all jQuery code which uses $ needs to be inside here
});

これにより、関数のスコープ内で $ の意味が変わります。

于 2012-08-01T16:24:07.650 に答える
3

jQuery の競合が発生している可能性があります。次のように noConflict モードで試してみてください。

<script type="text/javascript">
    (function($) {
        $(document).ready(function(){
            $("#datepicker").datepicker();
        });
    })(jQuery);
</script>
于 2013-03-02T04:36:52.770 に答える
1

$ は次のように動作します

$(function($) {
    $( "#dateTasted" ).datepicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"    
    });
});
于 2013-11-29T17:37:33.797 に答える