2011-07-03 13 views
1

に多くのjqueryのイベントを添付すること。 私はライブを使って、クリックイベントをattchedしているが、どのような機能私は左側のナビゲーションタブを持っていると私は右側にコンテンツをロードしていますどのように動的にロードされたコンテンツ

$('#form').submit(function() { 
     $(this).ajaxSubmit(options); 
      return false; 
    }); 

$("#dialog-confirm").dialog({ 
          resizable: true, 
          autoOpen: false, 
          height:427, 
          width:650, 
          modal: true, 
          buttons: { "Ok": function() { $(this).dialog("close"); }, 
             "Cancel": function() { $(this).dialog("close"); } }, 
           }); 

のこれらのタイプを添付することができますまた、私は、あなたが新しいコンテンツをロードするときにも

答えて

1

をajaxoptionsを添付する必要があります自分のコードから ".dialog()"のようなものを再適用する必要があります。一般的には、コンテンツをロードするために使用したajaxメカニズムの "success"ハンドラで行います。それが何を意味するのか

は、それはページの任意の部分を操作するために呼び出すことができるように、あなたのページ「ウィジェット」のセットアップコードを整理するために本当に良いアイデアだということです。ページの初期化時には、<body>に対して実行しますが、動的コンテンツのロード後に、更新したコンテナエレメントに対して実行します。

編集 —詳細:正確にこれを行う方法は、あなた次第であり、アプリケーションで行うことの種類によって異なります。私はこの問題を処理するためにjQuery pluginを書きましたが、それは多くの目的のために過度のものかもしれません。あなたは物事がダイアログを初期化する好きですかと思い、関数内

function initializeFeatures(startingPoint) { 

、そしてあなたがオフの作業を行うコードをベースにしたい:

一般的な考え方は、初期化機能を持っているだろうということです"startingPoint"パラメータ。コードを設定するページ要素を「見つける」ために持っているときに、他の言葉では、それは常にそこから起動する必要があります。

$(startingPoint).find('.dialog-container').dialog({ 
     resizable: true, 
     autoOpen: false, 
     // ... 
    }); 

次に、あなたの「成功」ハンドラ内であなたがコンテンツをロードした後、あなただけのことができます関数をもう一度呼び出す:

$('#dynamic').load('/your/url', function() { 
     initializeFeatures(this); 
    }); 

この場合も、アプリケーションの詳細に完全に依存します。

+0

あなたは右の私に正確に探しているが、私はより良いUが話しrは何を達成する方法を理解できるように、いくつかのオンラインのリンクを提供することができます。ありがとう – user2134226

+0

私は答えを更新します。 – Pointy

+0

私は(initializefeatures内のすべての機能を入れている)、その後、私のajaxSetupに私はこの\t '完全な追加:関数(){\t \t \t \t \t initializeFeatures(この);'とその細かい作業が、私は使用しませんでした$(始点を).find。なぜそれが必要なのですか? – user2134226

関連する問題