Javascript plone4:打开ajax内容的覆盖,不绑定以单击
当将弹出窗口绑定到“onClick”并从href/src/rel属性之一提供的url加载其内容时,Javascript plone4:打开ajax内容的覆盖,不绑定以单击,javascript,plone,jquery-tools,Javascript,Plone,Jquery Tools,当将弹出窗口绑定到“onClick”并从href/src/rel属性之一提供的url加载其内容时,plone.app.jquerytools中的$('.selector').prepOverlay() 我有一个用例,通过ajax手动加载我的内容,检查它是否满足某些条件,如果满足这些条件,我希望在覆盖中显示ajax请求返回的内容: jQuery.ajax({ type: 'GET', url: portal_url + '/@@my-popup', success: fu
plone.app.jquerytools
中的$('.selector').prepOverlay()
我有一个用例,通过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();
var link=$(“”)
link.prepreverlay({
子类型:'ajax',
});
link.click();
但是,这会导致对“/@@my popup”的两个请求
有没有更好的方法将任意内容放入使用PrePreverlay创建的覆盖中?没有,不幸的是没有
如果更靠近preverlay
函数,您会看到以下行:
// 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属性的元素,就无法触发覆盖
您可以编写自己的prepreverlay方法,它不迭代某些元素,而是将特定的url作为参数。Plone的prepreverlay的唯一真正目的是将链接或图像自动转换为简单的jquerytools覆盖。对你来说,这只是个障碍。所以,不要使用prepreverlay。直接使用。这也是我学到的。但是,直接使用它需要从PreOverlay复制大量代码,以便为弹出窗口获得相同的标记。。并使其与我为PreOverlay弹出窗口注册的自定义事件兼容。(pbo.create\u content\u div方法在overlayhelper.js之外不可用)感谢您的回复。这也是一个有效的选择。事实上,这可能比直接使用jquertools覆盖要好,因为我的弹出窗口具有相同的外观,并且我可以重用其他弹出窗口使用的事件处理程序)