1. 程式人生 > >iframe裡面的元素觸發父視窗元素事件的jquery程式碼

iframe裡面的元素觸發父視窗元素事件的jquery程式碼

例如父視窗定義了一個事件。

top:

$(dom1).bind('topEvent', function(){});

那麼iframe裡面的元素怎樣觸發父視窗dom1的事件呢?這樣嗎?

$(dom1, parent.document).trigger('topEvent');

看似正確,實則誤導人。

因為父視窗的jquery物件與iframe裡面的jquery物件實際為兩個物件(function),iframe裡面的jquery並不會觸發另一個jquery物件定義的事件。除非你在iframe這樣定義了:

iframe:

self.$ = parent.$;

所以解決的方法很簡單:

parent.$(dom1,parent.doucment).trigger('topEvent');

呼叫父jquery執行該事件就行了。

話說iframe應該不必再引進jquery檔案的,與父視窗共用一個jquery就行了,這樣很環保。