2009-09-23 51 views
1

我已經實現了jQuery的simplemodal插件。非常好的btw!當我遇到問題時,是否有一個從數據庫生成的鏈接列表,當我單擊它時,我會進行「加載」調用並將結果添加到我的osx-modal-content div。我的加載完成後如何調用osx插件?如果我將class = osx添加到我的href中,模式會在內容進入div之前打開。如何以編程方式調用simplemodal osx插件?

我的函數加載HTML:

function loadContent(id) { 
     $("#osx-modal-dialog").load("Item.cfm?ID="+id+""); 
     // call OSX here???? 
     $('#osx-modal-dialog').modal(); 
    } 

我的DIV:

<div id="osx-modal-dialog"> 
    <div id="osx-modal-content"> 
<div id="osx-modal-title">Title</div> 
<div id="osx-modal-data"> 
    <h2>Summary</h2> 
    <p>Description</p> 
    <p><button class="simplemodal-close">Close</button> <span>(or press ESC or click the overlay)</span></p> 
</div> 
    </div> 
</div> 

目前OSX插件正在尋找輸入或點擊事件。我不知道如何編寫我的負載的「點擊」事件。或者也許有更好的方法來調用插件。

包括:

回答

0

這裏是我會做:

修改OSX的內容(我刪除了大部分的內容,並增加了一個佔位符):

<div id="osx-modal-content"> 
               <div id="osx-modal-title">OSX Style Modal Dialog</div> 
               <div id="osx-modal-data"> 
                       <div id="osx-data-placeholder"></div> 
                       <p><button class="simplemodal-close">Close</button> <span>(or press 
ESC or click the overlay)</span></p> 
               </div> 
       </div> 

你loadContent功能:

function loadContent(id) { 
               var d = $('#osx-modal-content'); 

               // load your page 
               $.get("Item.cfm?ID=" + id, function(data) { 

                       // replace the placeholder with the results 
                       $('#osx-data-placeholder', d[0]).html(data); 

                       // open the osx modal 
                       d.modal({ 
                               overlayId: 'osx-overlay', 
                               containerId: 'osx-container', 
                               closeHTML: '<div class="close"><a href="#" 
class="simplemodal-close">x</a></div>', 
                               minHeight:80, 
                               opacity:65, 
                               position:['0',], 
                               overlayClose:true, 
                               onOpen:OSX.open, 
                               onClose:OSX.close 
                       }); 
               }); 
       } 

我還沒有測試過,但我很確定這應該做的伎倆。

-Eric

+0

感謝您的洞察力。我得到的錯誤:OSX未定義 所有需要的js文件正在加載以及osx.css。 OSX沒有定義,因爲osx.js插件沒有被觸發? – dallasweb 2009-09-24 02:15:56

+0

我假定您使用的是隨OSX下載一起提供的js文件 - 其中定義了OSX var。確保文件已加載或將此代碼添加到該文件。 – 2009-09-24 04:43:35

+0

感謝Eric的幫助。我將Var OSX ...代碼從插件中取出,並將其添加到調用頁面上的腳本中...工作正常..不理想,但可以工作。 – dallasweb 2009-09-24 13:52:13

0

負載方法,你可以提供當負載完成將要執行的功能的回調參數。使用此回調來觸發對話。

function loadContent(id) { 
    $("#osx-modal-dialog").load("Item.cfm?ID="+id+"", function() { 
     $('input.show-info').unbind('click') // remove any existing handlers 
          .click(function() { // bind click on button to show dialog 
      $('#osx-modal-dialog').modal(); 
     }); 
    }); 
} 

更新:我已經更新它來顯示如何在負載()的回調添加一個單擊處理程序,但我不知道你想什麼處理事件,也不是事件是哪些因素觸發。我假設你想在顯示對話框的時候點擊類「show-info」的按鈕。

+0

感謝您的快速回復。我可以打開模式,我的問題是調用插件打開模式。 osx示例有一個鏈接例如:Demo,並在插件osx.js中:$(「input.osx,a.osx」)。click(function ... 我需要模擬'a'的點擊class = osx – dallasweb 2009-09-23 19:19:40

+0

你的意思是你如何調用loadContent()方法?你引用的代碼並不是模擬點擊,而是添加一個響應點擊並打開對話框的處理程序。處理函數 - loadContent()函數,你只需要一個方法來根據用戶的操作調用loadContent()和正確的id,我可以添加一個樣例點擊處理函數定義,但是沒有關於你的html的更多信息,它可能不是 – tvanfosson 2009-09-23 19:51:06

相關問題