plone4:打开覆盖 ajax 内容 w/o 绑定到点击
plone4: open overlay with ajax content w/o binding to click
$('.selector').prepOverlay()
from plone.app.jquerytools
将弹出窗口绑定到 '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
}
}
});
我目前为显示叠加层所做的工作是:
创建一个 link 项目,将叠加层绑定到它并打开它
var link = $('<a href="' + portal_url + '/@@my-popup"></a>')
link.prepOverlay({
subtype:'ajax',
});
link.click();
但是,这会导致两次请求“/@@my-popup”
是否有更好的方法将任意内容添加到使用 prepOverlay 创建的叠加层中?
不,不幸的是没有。
如果仔细观察 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 作为参数。
Plone 的 prepOverlay 的唯一真正目的是自动将链接或图像转换为简单的 jquerytools 覆盖。在你的情况下,它只是妨碍了。所以,不要使用 prepOverlay。直接用jquerytools' overlay facility.
就可以了
$('.selector').prepOverlay()
from plone.app.jquerytools
将弹出窗口绑定到 '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
}
}
});
我目前为显示叠加层所做的工作是:
创建一个 link 项目,将叠加层绑定到它并打开它
var link = $('<a href="' + portal_url + '/@@my-popup"></a>')
link.prepOverlay({
subtype:'ajax',
});
link.click();
但是,这会导致两次请求“/@@my-popup”
是否有更好的方法将任意内容添加到使用 prepOverlay 创建的叠加层中?
不,不幸的是没有。
如果仔细观察 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 作为参数。
Plone 的 prepOverlay 的唯一真正目的是自动将链接或图像转换为简单的 jquerytools 覆盖。在你的情况下,它只是妨碍了。所以,不要使用 prepOverlay。直接用jquerytools' overlay facility.
就可以了