web-dev-qa-db-ja.com

キャッチされていないTypeError:$(...)。tabsは関数ではありません

Jqueryには奇妙な問題があると思います。ここでのページの読み込みが私のマークアップであるときにこの例外が発生しました:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link href="../Layouts/en-us/css/custom.css" rel="stylesheet" />

<link href="../Layouts/en-us/css/jquery-ui.css" rel="stylesheet" />



<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script src="../ckeditor/ckeditor.js"></script>
<script src="../ckeditor/adapters/jquery.js"></script>
<script src="/Layouts/en-us/js/jquery-ui.min.js"></script>
</asp:Content>

これがエラーの原因となる関数です

$(function () {
    $("#tabs").tabs();

    if ($("#ListBoxPages").val() == null) {
        $("#tabs").css("display", "none");
    }

    $("#ListBoxPages").change(function () {
        $("#tabs").css("display", "block");
    });

});

レイアウトとjqueryへのすべての相対パスは、エラーなしでかなり正常に機能する別のマークアップからコピーされました

5
Ibrahim Amer

Jqueryを2回ロードしていることがわかりますので、削除してみてください

<script src="/Layouts/en-us/js/jquery-ui.min.js" />

とだけ保持-

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" />

次に、関数の代わりに以下のコードを使用します(最初にこの関数の変更を確認してから、そのjquery-ui.min.jsを削除してみてください)

$( document ).ready(function() {
        $("#tabs").tabs();
        if ($("#ListBoxPages").val() == null) {
            $("#tabs").css("display", "none");
        }
        $("#ListBoxPages").change(function () {
            $("#tabs").css("display", "block");
        });
});
6
Shirish

$( "#tabs")。tabs(); Jquery.UIに含める必要があります

<script src="/Layouts/en-us/js/jquery-ui.min.js" />

またはCDNを使用する

<scriptsrc="https://code.jquery.com/ui/1.12.1/jquery-ui.js"integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30="crossorigin="anonymous"></script>
1
Basit