2012-02-08 17 views
1

私のプロジェクトには複数のjqueryファイルがあります。 昨日、この問題を尋ね、解決策を見つけました。私は今の問題は、私はすべての私のjqueryのファイルでこれを使用する場合ということです。このajax asp.netとjqueryの競合

function pageLoad() { 

でこれ

$(document).ready(function() { 

を編集しました。すべてのスクリプトが機能しなくなります。

+0

競合があることをどのように知っていますか?どのようなエラーがjavascriptコンソールから出ていますか? – Hawxby

+0

私はいつjqueryスライドショーを持っています。私はボタンスライドショーを押しているときにasp.netでajaxを使用して私は隠れている(動作を停止します)これはエラーです:リソースは他として解釈されますが、未定義のMIMEタイプで転送されます。 –

+0

これはjQueryの競合のようには聞こえません。火かき棒ネットワークのトラフィックを見て、それが正しく返されていない何かが要求されているように聞こえる。 – Hawxby

答えて

1

これは2つの異なることです。

$(document).ready(function() { 

は、jqueryからのもので、DOMがロードされたときにコードの実行を開始します。

function pageLoad() { 

がASP.NETからであり、それはApplication.Load(クライアント側)のハンドラの一つである

ので、同じページ内のあなた、それは動作を停止します理由は、同じ名前のイベントを1つしか持てません。デフォルトでは、pageLoadはApplication.Loadのハンドラになりますが、別の名前を関連付けることができます。なぜあなたは2人の間に問題があるのか​​わかりませんが、それをよりよく説明できますか?

EDIT: コメントの後、Sys.Application.add_load(デフォルトではpageLoad)を使用する必要がある場合は、必要なjsファイルごとに別の名前を追加する必要があります。 MSDNから

:あなたが見ることができるように

// Attach a handler to the load event. 
Sys.Application.add_load(applicationLoadHandler); 

function applicationLoadHandler() { 
    // Redirect to alternate page if not business hours. 
    var d = new Date(); 
    if (!(8 < d.getHours() < 17)) { 
     window.location = "AfterHours.aspx"; 
    } 

、あなたはadd_loadする別の名前を与えることができますし、同じページ/要求に対して1以上のものを使用するように別の名前を与える必要があります。

}

+0

pageLoadは1つのjqueryスクリプトファイルだけでうまくいく。 2つのjqueryファイルをpageLoadで更新する場合両方とも、私はボタンスライドショーを押してasp.netでajaxを使用して作業を停止します(作業を停止)隠されて行く –

+0

ちょうど私の答えを編集しました。 –

+0

ありがとうございます。私はそれを使用する方法を知らないあなたは私に方法やいくつかのチュートリアルを表示することができますか? –

1

このようなものでpageLoadを置き換えます

(function($) { 
    // This will be executed when the page is loaded 
})(jQuery); 

編集 ...

$(function() { 
    // This will be executed when the page is loaded 
}); 

または名前の衝突を避けるために:rich.okelly指摘したように第二の例では、すぐに実行されますスクリプトがロードされると、

+0

2番目の例は、スクリプトが読み込まれるとすぐに実行され、ページの読み込みが終了したときには実行されません。 –

+0

これは良い点です、ありがとう - 今更新されます。 – mdm

+0

ありがとうmdm再生のために。私はそれらの両方を試みたが、私を助けなかった –

関連する問題