0

画像セレクターでポップアップを開く Web ページで作業しています。選択リストに追加された写真は、すぐにサムネイルとしてオープナー ウィンドウに複製されます - その部分は正常に動作します。

次のように、これらのサムネイルをクリック可能にしようとすると問題が発生します。

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

これまでのところ、ポップアップウィンドウがまだ開いているときにのみこれを機能させることができました(使用した単純なアラート(...)の代わりにopener.window.alert("bam!"))。ただし、ポップアップ ウィンドウを閉じると、サムネイルをクリックするとエラーが発生します。

同様の問題を抱えていて、それを機能させた人はいますか?前もって感謝します。

アップデート:

OK、私は最もきれいな解決策を見つけませんでしたが、これまでのところうまくいきます。オープナー ウィンドウで追加の関数を宣言する必要がありました。

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

そしてポップアップウィンドウで:

opener.addbam("someid");

このソリューションがマルチブラウザ テストに耐えた場合、それは私にとどまりますが、そのような onclick 宣言から「間違った」スコープを非常に簡単な方法で削除できるはずだと確信しています。

みんなありがとう、あなたの提案は私にもっと生産的な方法を考えさせました。

4

1 に答える 1

1

jquery を使用する場合:

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

またはjqueryなし: ---------EDIT----------

//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/

于 2013-01-09T17:50:30.200 に答える