2011-04-28 60 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