2013-01-09 37 views
0

我在一個網頁上打開一個帶有圖片選擇器的彈出窗口。添加到選擇列表的圖片會立即克隆爲開啓窗口的縮略圖 - 該部分工作正常。當我試圖讓這些縮略圖點擊,像這種情況如何在開啓器窗口的元素中添加onclick函數?

問題:

opener.document.getElementById("someid").onclick = function(){ alert("bam!"); }  

到目前爲止,我只設法時仍然會打開一個彈出窗口(而不是純警報(有這方面的工作? )我用opener.window.alert("bam!"))。但是,當我關閉彈出窗口時,單擊縮略圖會導致錯誤。

有誰有類似的問題,並得到它的工作?提前致謝。

UPDATE:

OK,我發現不是最漂亮的解決方案,但到目前爲止,它的工作原理。我曾在揭幕戰窗口申報額外功能:

function addbam(id){ 
    document.getElementById(id).onclick = function(){ alert("bam!"); } 
} 

並在彈出窗口:

opener.addbam("someid"); 

如果此解決生存多瀏覽器測試中,它會陪在我身邊,但我敢確保應該可以以非常直接的方式從這種onclick聲明中刪除「錯誤的」範圍。

謝謝你們,你們的建議讓我想到了更富有成效的方式。

+0

'open er'屬性給你父窗口的'window'對象 - 'getElementById'是'document'而不是'window'的屬性。改爲使用'window.opener.document.getElementById ...'。這就是說,'opener.window'是多餘的。 – jbabey

+0

你說得對。實際的代碼使用opener.document.getElementById和opener.window.alert。對不起,因爲缺乏準確性。我現在將編輯該問題。 – user1964112

回答

1

如果您使用jquery:

$("#someid").on('click', function() { 
    alert("bam"); 
}); 

的jQuery: --------- ----------編輯

//you put your element in a variablle 
var div = document.getElementsByTagName("div")[0]; 

/*you add an event listenner to your variable, when click is triggered, it runs what's inside the brackets*/ 
div.addEventListener("click", function (evt) { 
    alert("BAM!"); 
}); 

這裏是一個例子:)

http://jsfiddle.net/YDFLV/50/

+0

我不認爲你的「沒有jQuery」的例子將工作。 – jbabey

+0

是的,我只是編輯它..謝謝! – Ben

+0

'on()'函數不存在於DOM元素上。 – jbabey

相關問題