2011-07-03 53 views
1

我在左側有導航選項卡,我在右側加載內容。 我以現場卻怎麼可以把這些類型的函數如何在動態加載的內容上附加許多jQuery事件

$('#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"); } }, 
           }); 

attched click事件還做我需要附上ajaxoptions以及

回答

1

當加載新的內容,你必須從你自己的代碼中重新應用諸如「.dialog()」之類的東西。一般來說,你可以在你用來加載內容的ajax機制的「成功」處理程序中這樣做。

這意味着,組織頁面「小部件」設置代碼是一個非常好的主意,以便可以調用它以在頁面的任意部分進行操作。在頁面初始化時,您將針對<body>運行它,但是在動態內容加載之後,您會針對您更新的容器元素運行它。

編輯 —更多詳細信息:具體如何執行此操作取決於您,它取決於您在應用程序中執行的操作。我寫了一個jQuery plugin來解決這個問題,但這可能是爲了很多目的而矯枉過正。

總的想法是,你有一個初始化函數:

function initializeFeatures(startingPoint) { 

在函數內部,你會做這樣的事情初始化的對話框,你就會基礎,做的工作斷碼「startingPoint」參數。換句話說,當代碼具有「發現」頁面元素設置,它應該始終從那裏開始:

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

然後,在你的「成功」的處理程序已加載後的內容,你可以再次調用您的功能:

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

此外,它完全取決於您的應用程序的確切詳細信息。

+0

你看起來對我完全正確,但你可以提供一些在線鏈接,這樣我可以更好地瞭解如何實現,你在說什麼。謝謝 – user2134226

+0

我會更新答案。 – Pointy

+0

我已經把所有的功能initializefeatures(),然後在我的ajaxSetup我加入這個\t'完整:函數(){\t \t \t \t \t initializeFeatures(本);'和它工作正常,但我沒用過$(起點)。找 。爲什麼我需要這個 – user2134226