10

私は JQuery ツールのタブ機能を使用していますが、同時に JQuery UI も使用しています。

両方の JS ライブラリを含めると、タブ付きの Jquery ツールが機能しません。

この競合を修正するにはどうすればよいですか? どんな助けでも大歓迎です。

前もって感謝します。

4

6 に答える 6

7

タブを含まないカスタム jQuery-ui ビルドを取得することはできますが、後で混乱を招く可能性があります。より良いアプローチは、私見ですが、jQuery-tools を編集して次のtabs.js行を変更することです。

$.fn.tabs = function(query, conf) {

このようなものに:

$.fn.fpTabs = function(query, conf) {

"flowplayer.org tabs" には "fpTabs" を使用しました。好きな名前を使用できます。これにより、他の場所で問題を引き起こすことなく、競合が解消されるはずです。もちろん、tabs.jsアップグレードする場合は変更したことを覚えておく必要がありますが、タブのないファイルをいじるよりも面倒ではありませんjquery-ui.js

于 2011-01-05T03:38:28.203 に答える
5

この URL http://jqueryui.com/downloadで独自の jquery UI を構築できます。

jquery ツールとの競合を避けるため、必要なツールのみを選択し、オプションにコンポーネント TAB を含めないでください。

ここに画像の説明を入力

于 2012-03-15T17:43:35.800 に答える
5

もっと簡単な方法があります。他のライブラリ (Tools | Prototype | MooTools | など) で jquery を使用するときはいつでも、特別な noConflict 関数を使用して $ を別の変数に再割り当てできます。例えば:

var $j = jQuery.noConflict();    // assign the main jQuery object to $j
$j("#tabs-container").tabs();    // use $j as you would normally use $

または、より明示的に $.someFunction の代わりに jQuery.someFunction() を使用することもできます。

于 2011-01-18T22:39:58.013 に答える
3

私たちの解決策は、完全な jQuery UI と jQuery ツール ライブラリを含めることですがtabs、jQuery ツール (私たちのサイトで使用する機能を含む) に干渉しないように、 jQuery UI の名前を変更する小さな JavaScript 修正を挿入することtabsです。最初に jQuery UI をインポートします。 、修正を実行してから、jQuery ツールをインポートします。

jquery-ui-jquerytools-tabsconflictfix.js:

// Both jQuery UI and jQuery Tools define a tabs function on jQuery objects.
// We use both libraries (jQuery Tools for its non-restricting tabs function and overlay; jQuery UI for autocomplete.)
// To avoid a conflict over tabs, rename the jQuery UI tabs.  Call this code after loading jQuery UI but before
//  calling jQuery Tools.
var oldTabs = $.fn.tabs;
delete $.fn.tabs;
$.fn.jQueryUiTabs = oldTabs;

他のプログラマーが誤って回避する可能性が低いように、これを設定することをお勧めします。ASP.NET MVC 4 環境にいるため、正しい順序でスクリプトを自動的に含めるスクリプト バンドルを作成します。

App_Start\BundleConfig.cs

namespace OurWebApp
{
    public class BundleConfig
    {
        /// <summary>
        /// Good Bundling resource, succinctly highlighting a range of ways to use this feature:
        /// http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
        /// </summary>
        /// <param name="bundles"></param>
        public static void RegisterBundles(BundleCollection bundles)
        {
            ...
            bundles.Add(new ScriptBundle("~/js/jquery-ui-and-tools").Include(
                "~/Scripts/jquery-ui-1.9.2.min.js",
                // Both jQuery UI and jQuery Tools define .tabs on jQuery objects.  We use
                // jQuery Tools' version, and this fix renames jQuery UI's version to get it out of the way.
                // So the load order must be: jQuery UI, the fix, and then jQuery Tools
                "~/Scripts/jquery-ui-jquerytools-tabsconflictfix.js",
                "~/Scripts/jquery-tools-1.2.7.min.js"));
            ...
        }
    }
}
于 2012-11-26T18:55:41.113 に答える
1

私の場合、jquerytools タブ関数の名前を変更します。から:

(e.initialIndex)}a.fn.tabs=関数(b,c){

に:

(e.initialIndex)}a.fn.tooltabs=関数(b,c){

したがって、jquery-ui-tools を変更する必要はありませんでした。これは、このスクリプトを CDN から取得する場合に役立ちます。

于 2012-08-06T03:41:50.167 に答える