ホームページ  >  記事  >  ウェブフロントエンド  >  jQueryプラグインのtipswindowとhintbox_jqueryの間の競合を解決する

jQueryプラグインのtipswindowとhintbox_jqueryの間の競合を解決する

WBOY
WBOYオリジナル
2016-05-16 18:17:001039ブラウズ

使用状況は次のとおりです。

ページ a.aspx のボタンをクリックしてシミュレーション レイヤーをポップアップします。このレイヤーには、インスタント クエリ関数を生成するためのヒントボックスを呼び出す入力テキスト ボックス「スーパーバイザー」があります。 。

直接呼び出しでは次の状況が発生します:

そこで、jquery.hintbox-1.3.js ファイルを見つけて次の行を見つけました:

コードをコピー コードは次のとおりです。次のように:

$("#windown-content").ajaxStart(function(){
$(this).html("");
});

次のように変更します:
コードをコピーします コードは次のとおりです:

$("#windown-content").html("");

その理由は、2 つのプラグインが異なる状況で ajax イベントをトリガーしたとしても、依然として同じオブジェクトを使用するためです。つまり、jQuery.js に表示される
コードをコピー コードは次のとおりです:

ajaxSetup: function( settings ) {
jQuery.extend ( jQuery.ajaxSettings, settings );
},

ajaxSettings: {
url: location.href,
global : true、
type: "GET"、
contentType: "application/x-www-form-urlencoded"、
processData: true、
async: true、
/*
timeout: 0,
data: null,
username: null,
password: null,
*/
// Microsoft はリクエスト オブジェクトを適切に作成できませんでした。
// IE7 で XMLHttpRequest を実装するため、ActiveXObject が利用可能な場合はそれを使用します。
// この関数は、jQuery.ajaxSetup を呼び出すことでオーバーライドできます。
xhr:function(){
return window.ActiveXObject( ? "Microsoft.XMLHTTP") : new XMLHttpRequest();
},
accepts: {
xml: "application/xml, text/xml",
html: "text/html",
script: "text/javascript, application/javascript"、
json: "application/json、text/javascript"、
text: "text/plain"、
_default: "*/*"
}
},

このようにすると、ヒントボックスの ajax イベントがヒントウィンドウの ajaxStart イベントをトリガーするため、現在のフォームには xhr オブジェクトが 1 つだけ存在します。

変更されたヒントウィンダウンをダウンロードできます。クリックしてダウンロード
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。