![](/img/trans.png)
[英]Binding a click event to content loaded via AJAX without making it delegated?
[英]plone4: open overlay with ajax content w/o binding to click
來自plone.app.jquerytools
$('.selector').prepOverlay()
在將彈出窗口綁定到'onClick'並從其中一個href / src / rel屬性提供的url加載內容時工作正常。
<a class=".selector" href="link/to/@@view">link</a>
我有一個用例,我通過ajax手動加載我的內容,檢查它是否符合某些條件,如果滿足這些條件,我想在疊加中顯示ajax請求返回的內容:
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();
但是,這會產生兩個'/ @@ my-popup'請求
是否有更好的方法將任意內容放入使用prepOverlay創建的疊加層中?
Plone的prepOverlay的唯一真正目的是自動將鏈接或圖像轉換為簡單的jquerytools疊加。 在你的情況下,它只是阻礙了。 所以,不要使用prepOverlay。 只需直接使用jquerytools的覆蓋設施即可 。
不幸的是,沒有。
如果您仔細觀察prepOverlay
函數,可以看到以下行:
// 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作為參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.