2012-01-22 21 views
1

我有幾個「一」我的網頁上觸發覆蓋標籤都有效:jQuery工具:使用函數調用手動打開Overlay?

<a href="prelevel.htm" rel="#overlay" id="lvl1" style="text-decoration:none"></a> 
<a href="prelevel.htm" rel="#overlay" id="lvl2" style="text-decoration:none"></a>  

現在我想開這些覆蓋了函數調用的一個。 我試過幾件事情終於來到了此解決方案:

function openOverlay(id){ 
    $("a[id=" + id + "]").overlay().load(); 
} 

這工作,但似乎與負載() - 函數所有我的網頁上的JavaScript代碼被再次執行,導致我的用戶的毀滅接口。

我用這個函數來創建我的疊加:

$(function() { 
     $("a[rel]").overlay({ 
     api : true, 
     mask : '#DCDBDB', 
     effect : 'apple', 
     onBeforeLoad : function() { 
       var wrap = this.getOverlay().find(".contentWrap"); 
        wrap.load(this.getTrigger().attr("href")); 
      } 
     }); 
}); 

有什麼建議?

+1

你爲什麼叫['.load'(http://api.jquery.com/load/)? – Esailija

+0

因爲我在這裏閱讀:http://flowplayer.org/tools/demos/overlay/multiple.html(底部) – Tobias

+0

你是否試圖從頭開始編寫jQuery Overlay插件?或者你只是想讓jQuery Tools Overplay Plugin工作? –

回答

0

更新的代碼:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $("a#lvl1").overlay({ 
    onBeforeLoad: function() { 

    // grab wrapper element inside content 
    var wrap = this.getOverlay().find(".contentWrap"); 

    // load the page specified in the trigger 
    wrap.load(this.getTrigger().attr("href")); 

    } 
    }); 

}); 
</script> 

<!-- HTML Link--> 
<a href="prelevel.htm" rel="#overlay" id="lvl1" style="text-decoration:none"> 
    <button type="button">Show external page in overlay</button>  
</a> 

<!-- Overlay Container--> 
<div class="apple_overlay" id="overlay"> 
    <div class="contentWrap"></div> 
</div> 
+0

是的,但我想打開一個HTML文件(我動態構建)在覆蓋內,就像它在這裏完成:http://flowplayer.org/tools/demos/overlay/external.html – Tobias

+0

更新我的代碼。訣竅是將你的觸發元素封裝在一個錨點中,然後使用'onBeforeLoad()'方法在覆蓋包裝中加載錨點href,從而修改錨點的行爲。 –