2010-11-29 28 views
9

Gibt es eine Möglichkeit, eine Schaltfläche zu einem Dialogfeld in jquery ui dynamisch hinzuzufügen.Hinzufügen einer Schaltfläche zu einem Dialogfeld dynamisch

Ich versuchte mit: $ (this) .add ("button");

+0

Willkommen bei SO! ... Bitte lesen Sie die FAQ http://StackOverflow.com/faq und akzeptieren Sie die Antworten, die Ihnen geholfen haben. –

+0

Warum möchten Sie das überhaupt machen? Wenn Sie bestimmte Aktionen basierend auf Änderungen in der Dialogbox aktivieren möchten, sollten Sie vorhandene Schaltflächen aktivieren/deaktivieren und keine neuen anhängen. – aditya

+0

@aditya: Ich dachte sogar, dass ... also, gibt es ny Möglichkeit, den Wert einer Schaltfläche dynamisch zu ändern ... – Kut

Antwort

9

befindet sich direkt auf der jQuery UI-Seite für Dialog Diese beantwortet ... http://jqueryui.com/demos/dialog/ (klicken Sie auf "Optionen", dann auf den Link für "Buttons")

"Get oder die Tasten Option, nach der init gesetzt". ..

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

fügen Sie einfach den entsprechenden Selektor (was auch immer Element, das Sie als Dialog verwenden), und Sie sollten gut zu gehen.

-3

Sie können jQuery html() verwenden, einige HTML-Code in Ihre Dialog

Ex hinzuzufügen. $ ('# your-Dialog-id') html ('');

Weitere Informationen: http://api.jquery.com/html/

21

Manchmal wollen Sie später auch die Schaltflächen hinzuzufügen.

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

Sehr nützlich, danke! –

+0

Clever. Dies scheint jedoch alle Schaltflächen zu überschreiben, die möglicherweise bereits instanziiert wurden. Ich dachte, die $ .extend() würde einfach die neuen Schaltflächen neben vorhandenen hinzufügen. –

+0

Ja, es überschreibt die Schaltflächen. Aus diesem Grund ist es erforderlich, die Sammlung von Schaltflächen abzurufen, eine neue mit EXTEND hinzuzufügen und dann die Sammlung erneut anzuwenden. http://jsfiddle.net/Z8pZt/ – JJS

Verwandte Themen