【问题标题】:Triggering an overlay through Javascript in Plone在 Plone 中通过 Javascript 触发覆盖
【发布时间】:2011-04-28 10:45:46
【问题描述】:

我这样定义了我的叠加层

    $j('#heise').prepOverlay(
    {   
        subtype: 'ajax',
        noform: function(el) {return noformerrorshow(el, 'close');}
    }

(效果很好)。

现在我需要手动触发覆盖。

用户在表单中输入一些数据,提交表单后,结果应该显示在溢出内。使用表单参数修改“href”值没有问题,但是我不知道如何通过 Javascript 手动触发覆盖的外观。我找到了 jqueryTools 的低级 overlay() API 方法,但在这里没有用。有什么想法吗?

【问题讨论】:

    标签: overlay plone jquery-tools


    【解决方案1】:

    打开 jQueryTools 覆盖的常规方法是通过 overlay API 上的 .load(),但 .prepOverlay 将所有内容隐藏在它自己的包装器中以用于 ajax 样式覆盖。您可以执行以下两项操作之一:

    1. 调用点击处理程序:

      jQuery('#heise').click();
      

      这将为所有点击事件触发正确的处理程序。

    2. 直接调用pb.ajax_click 处理程序,将this 绑定到您的元素:

      pb.ajax_click.apply(jQuery('#heise'));
      

      这只会触发ajax点击处理程序。

    【讨论】:

    • 不——这会导致“”“Uncaught TypeError: Cannot call method 'load' of undefined”“”错误
    • @RestRisiko 你偏离了方向,正确;我对 prepareOverlay 方法的了解不够深入。对于 ajax,创建了一个可以调用的单击处理程序。查看更新的答案。
    猜你喜欢
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2012-03-22
    相关资源
    最近更新 更多