2011-06-24 5 views
2

私は、かなりファンキーなモーダルボックスが実装されているサイトで作業しています。現在、新しいものを実装するための範囲外です。それが動作する方法は、それがユニークなIDが割り当てられている新しいモーダルウィンドウが作成されるたびに..です例えばDOMから一意のIDを削除する

<div id="window_1308937649703" class="dialog"> 

閉じるボタンのようなonclickの持つウィンドウを閉じるには:

onclick='Windows.close("window_1308937649703", event)' 

Iを別のクリックイベントからウィンドウを破壊しようとしていますが、これを達成する最良の方法が何であるかはわかりません。私は、関連する一意の#window_idを取得するためにダイアログクラスを使用できると考えています。 getElementsByClassName( 'dialog')に使用できるjavascriptがあり、それをDOMから完全に削除できますか?私はプロトタイプライブラリを持っていますが、もしそれが助けになるのであれば、一緒に作業してください。私は実際のモーダルスクリプトを理解することはできませんので、何らかの回避策を期待しています。

+0

divとの関係で閉じるボタンはどこにありますか?あなたは 'this'を使用して、それまでにparentNode()で後方に歩くことが可能ですか? – Drazisil

答えて

0

はば完全にDOMの使用からダイアログを削除するには:

function removeNodeByID (nodeId){ 
    var node = document.getElementById(nodeId); 
    node.parentElement.removeChild(node); 
}; 

onclick="removeNodeById('window_1308937649703')" 

あなたがちょうどあなたが質問に盗ん可能性が言及したダイアログのIDが必要になり、このよう

で。

+0

私は理解していません..問題の一部は、どのように私はこのonclickを行うことができます生成されるその一意のIDを取得する方法を知らないですか? – Zac

+0

私は誤解しているに違いない、私はあなたがIDを得ることができると言ったと思った –

0

生のJavaScriptでgetElementsByClassName()(自分でローリングを除く)を再作成することはあまりありませんが、Prototypeにはこれにはいくつかの良い点がありますがfunctionalityです。

もう1つのアプローチ:閉じるボタンには一般的なIDがありますか?その場合、プラグインを追加できたら(これはPrototypeを使用したことはありません)、このthreadを見ると、選択したクローズボタンでクリックイベントをトリガーする方法を知ることができます。あなたはプロトタイプを持っているとして

0

あなたは単に使用できます。

$$('.dialog').first().remove(); 

をまた、あなたはプロトタイプを使用している場合、あなたはおそらくのonClickを避け、代わりにイベントオブザーバー使用する必要があります。

<button id="dialogremover">Remove</button> 
<script type="text/javascript"> 
$('dialogremover').observe('click', function(ev) { 
    ev.stop(); 
    $$('.dialog').first().remove(); 
}); 
</script> 

これは持っているが2つのメリット:

  • 目がはるかに簡単です!
  • JSを外部スクリプトに入れてHTMLをクリーンアップすることは可能です。
関連する問題