2011-04-28 64 views
0

我定义我为覆盖像触发通过JavaScript覆盖在Plone

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

(这是工作完美的罚款)。

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

用户将一些数据输入到表单中,并在表单提交时将结果显示在溢出内部。使用表单参数修改'href'值是没有问题的,但我不知道如何通过Javascript手动触发叠加层的外观。我发现了jqueryTools的低级overlay()API方法,但在这里没有帮助。任何想法?

回答

1

正常方式打开jQueryTools覆盖是通过​​在overlay API,但.prepOverlay隐藏了所有在它自己的包装到位ajax风格覆盖。你可以做两件事情之一:

  1. 呼叫单击处理:

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

    这将触发正确处理所有点击事件。

  2. 调用pb.ajax_click处理直接结合this你的元素:

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

    这仅将触发ajax单击处理程序。

+0

都能跟得上 - 这会导致“”“遗漏的类型错误:无法调用未定义的方法‘负荷’”“”错误 – 2011-04-28 12:28:03

+0

@RestRisiko您是关当然,正确的;我对prepareOverlay方法的阅读不够深入。对于Ajax,创建一个可以调用的点击处理程序。查看更新的答案。 – 2011-04-28 13:41:02