このコードはサイトの2ページにありますが、1ページでは機能しません。 Firebugは「$(...)。tabsは関数ではない」と表示します。なぜわからないのですか、誰が間違っているのか教えてもらえますか?
これは動作しています: http://www.invat-online.net/variante-rezolvate
これは機能していません: http://www.invat-online.net/variante-explicate-limba-romana/varianta-01
コードは次のとおりです。
<div id="tabss">
<ul>
<li><a href="#SubiectI">Subiect I</a></li>
<li><a href="#SubiectII">Subiect II</a></li>
<li><a href="#SubiectIII">Subiect III</a></li>
</ul>
<div id="SubiectI">content here</div>
<div id="SubiectII">content here</div>
<div id="SubiectIII">content here</div>
</div>
$(document).ready(function() {
$("#tabss").tabs();
});
JavaScriptファイルへの相対パスがあります。
javascript/jquery-ui-1.9.2.custom.min.js
mod_rewrite
モジュールを使用しているため、絶対パスに変更します
/javascript/jquery-ui-1.9.2.custom.min.js
最初のリンクでは、サーバーはディレクトリを探しています
http://www.invat-online.net/javascript/my_js_file.js
(存在する)
しかし、2番目のパスでは
http://www.invat-online.net/variante-explicate-limba-romana/javascript/my_js_file.js
存在しない
私の場合:
私が使っていた
jquery-ui-1.10.3.minimal.min.js
の代わりに
jquery-ui-1.10.3.custom.min.js
最小バージョンにはui.tabs.jsが含まれていないため、ui.tabs関数はありません。これが他の誰かに役立つことを願っています
問題は、jQuery UI jsおよびcssがロードされないことです。
あなたのパスを変更してみてください<script>
タグは、上のディレクトリのいずれかに../javascript
またはWebサイトのルート/javascript
。
<script src="/javascript/head.min.js"></script>
<script src="/javascript/jquery-ui-1.9.2.custom.min.js"></script>
<link href="/stylesheets/smoothness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" />
これを試して:
_@section scripts{
$(document).ready(function() {
$("#tabss").tabs();
});
}
_
@Scripts.Render("~/bundles/jqueryui")
をlayout.cshtmlの_<body></body>
_に入れます
最初のデモがロードされます:
http://www.invat-online.net/javascript/jquery-ui-1.9.2.custom.min.js
2番目のデモはロードを試みます:
http://www.invat-online.net/variante-explicate-limba-romana/javascript/jquery-ui-1.9.2.custom.min.js
最後のものは404になります。後のパスを修正する必要があります。おそらく、現在の1つ上のディレクトリでjQuery UIを見つけるように指示する必要があります:../jquery-ui-1.9.2.custom.min.js
。
エラーUncaught TypeError: $(...).tabs is not a function
は、管理領域のDjangoプロジェクトで、次の設定でDjango-tabbed-adminを使用している場合にも生成される場合があります。
問題は、このDjango libのjquery-ui-1.11.4.min.jsのコードが次のようになることです。
/*! jQuery UI - v1.11.4 - 2015-07-27
(...)*/
jQuery = jQuery || Django.jQuery.noConflict(false);
django-tabbed-adminのコードはこの方法を使用します(change_form.html):
<script type="text/javascript">
(function($) {
$(window).scrollTop()
$('#tabs').tabs({
{% if add %}
// when adding, don't select a tab by default, we'll do it ourselves
// by finding the first available tab.
selected: -1
{% endif %}
});
(....)
})(Django.jQuery);
</script>
<!-- end admin_tabs stuff -->
これを整理するには、上記の(Django.jQuery)の代わりにIIFEに渡されるものにする必要があります。
<script type="text/javascript">
(function($) {
(....)
})((typeof window.jQuery == 'undefined' && typeof window.Django != 'undefined')
? Django.jQuery
: jQuery)
</script>
<!-- end admin_tabs stuff -->
私は 報告済み プロジェクトでこの問題を作成し、 [〜#〜] pr [〜#〜] を修正して作成しました。それが承認されるのを待っているので、それまでは、私の簡単な修正に従ってソートすることができます。
これが誰かに役立つことを願っています。