2011-07-21 6 views
0

JQueryレイアウトを使用し、ウェブサイトの一部(Gmailなど)のみを読み込むアプリケーションに取り組んでいます。 JQueryを使用して「パネル」を読み込むたびに、いくつかのリンクをパネルで動作させるために(つまり、フルページではなくパネル内にこのリンクのコンテンツを読み込むために)代わりにする必要があります。このようなものです:鉱山は、AJAXベースのページには繰り返しのJavaScript動作が必要です

function changeMainPane(href) { 
    $("#screen").load(href); 
    $("#screen a.ajax-page").click(function() {return 
     changeMainPane($(this).attr("href")) 
    }); 
} 

これは非常に単純化されたchangeMainPane機能がありました$(「#画面...」)の十(クリック)HTMLの新しい部分を統合するために呼び出します。ページに

質問:これを行うにはより良い方法がありますか?

$("#screen").ready(function() { 
    // All my html setups 
} 

など何か「常にユーザーがリンクをクリックすると、この機能のAjaxページクラスとコールを持っているかどうかを確認、」独立して、各リンクを初期化することなく、:何かのように。

+0

今日も同様の質問が尋ねられたhttp://stackoverflow.com/questions/6771954/dynamically-create-js-function/6771976#6771976 –

答えて

2

delegateの方法をご覧ください。デリゲートメソッドは、メインパネルをリロードするすべてのリンクの共通の親要素に対して登録できます。 documentオブジェクト、または"body"のような下位レベル要素、または"div.mylinks"のような別のdivにすることができます。

$(document).delegate("a.ajax-page", "click", function(){ 
    changeMainPane($(this).attr("href")) 
}) 
1

多分、jQuery live()はあなたが探しているものです。

次に、ajaxアクティビティの後に再初期化する必要はありません。

関連する問題