2016-11-17 14 views
2

$('.selector').prepOverlay()からplone.app.jquerytoolsは、 'onClick'にポップアップをバインドしてhref/src/rel属性で指定されたURLからコンテンツを読み込むときに問題ありません。plone4:ajaxコンテンツを含むオーバレイをクリックして開くと

:私は、手動でAJAXを経由して私のコンテンツをロードし、一定の条件のためにそれをチェックし、これらが満たされた場合、私は、オーバーレイでのAjaxリクエストによって返されたコンテンツを表示するユースケースを持っている

<a class=".selector" href="link/to/@@view">link</a>

私は現在、オーバーレイを表示するために何をすべきか

jQuery.ajax({ 
    type: 'GET', 
    url: portal_url + '/@@my-popup', 
    success: function(r) { 
     if (r != '') { 

      // show Overlay 

     } 
    } 
}); 

は次のとおりです。

が、リンク項目を作成し、それにオーバーレイを結合して、開いて

var link = $('<a href="' + portal_url + '/@@my-popup"></a>') 

link.prepOverlay({ 
    subtype:'ajax', 
}); 
link.click(); 

しかし、これはprepOverlayで作成したオーバーレイに任意のコンテンツを取得するためのよりよい方法がある「/ @@私-ポップアップ」

のための2つの要求につながりますか?

答えて

3

いいえ、残念ながらありません。これは、

// be promiscuous, pick up the url from 
// href, src or action attributes 
src = o.attr('href') || o.attr('src') || o.attr('action'); 

あなたはHREF、SRCまたはaction属性を持つ要素を持たずに、オーバーレイをトリガーすることはできません:あなたはprepOverlay機能に近い見てみると

は、次の行を参照してください。

いくつかの要素を反復処理せずに、特定のURLをparamとして取る独自のprepOverlayメソッドを記述することができます。

+0

返信用mathiasに感謝します。これも有効なオプションです。 実際、これはjquertoolsオーバーレイを直接使用するよりも良いかもしれません。なぜなら、私のポップアップと同じルックアンドフィールを得て、他のポップアップのために使用しているイベントハンドラを再利用することができるからです)。 – fRiSi

4

PloneのprepOverlayの唯一の本当の目的は、リンクや画像の単純なjquerytoolsオーバーレイへの変換を自動化することです。あなたの場合、それはちょうど途中に入っています。したがって、prepOverlayは使用しないでください。ちょうど直接jquerytools' overlay facilityを使用してください。

+0

これは私がスティーブも学んだものです。しかし、直接prepOverlayからコードをコピーして、ポップアップ – fRiSi

+0

のための同じマークアップを得るために直接必要としました。そして、それをprepoverlayポップアップのために登録されたカスタムイベントと互換性を持たせてください。 (pbo.create_content_divメソッドはoverlayhelper.jsの外部では使用できません) – fRiSi

関連する問題