2010-11-29 20 views
9

jquery UI内のダイアログボックスにボタンを動的に追加する方法はありませんか。ボタンをダイアログボックスに動的に追加する

私は以下を使って試しました:$(this).add( "button");これは、ダイアログの右側のjQuery UIのページに答えている

+0

こんにちは、こんにちは!http://stackoverflow.com/faqを読んで助けてください。 –

+0

どうしてあなたはそれをやりたいのですか?ダイアログボックスの変更に基づいて特定のアクションを有効にする場合は、既存のボタンを有効/無効にし、新しいボタンを追加しないでください。 – aditya

+0

@aditya:ボタンの値を動的に変更する方法はありますか? – Kut

答えて

9

... http://jqueryui.com/demos/dialog/(「ボタン」について、リンク、「オプション」タブをクリックします)

「初期化した後、ボタンのオプションを取得または設定」。 ..

$(".selector").dialog("option", "buttons", { 
"Ok": function() { $(this).dialog("close"); } 
}); 

適切なセレクタ(ダイアログとして使用している要素)を追加するだけでよいです。 。

-3

あなたは、ダイアログ

例にいくつかのHTMLコードを追加する)(jQueryのHTMLを使用することができます。 $( '#自分の-ダイアログ-ID')HTML( '');

詳細情報:http://api.jquery.com/html/

21

は時々あなたが後であまりにもボタンを追加します。

var mydialog = ... result of jqueryui .dialog() 
var buttons = mydialog.dialog("option", "buttons"); // getter 
$.extend(buttons, { foo: function() { alert('foo'); } }); 
mydialog.dialog("option", "buttons", buttons); // setter 
+0

非常に便利です、ありがとう! –

+0

Clever。しかし、これはすでにインスタンス化されているかもしれないボタンを上書きするようです。私は$ .extend()が新しいボタンを既存のものと単に追加すると思っていました。 –

+0

はい、ボタンを上書きします。そのため、ボタンのコレクションを取得し、EXTENDを使用して新しいボタンを追加してから、コレクションを再適用する必要があります。 http://jsfiddle.net/Z8pZt/ – JJS

関連する問題