2016-11-15 2 views
1

Ich versuche, das Format eines Jquery UI Dialogfelds dynamisch zu ändern. Ich habe ein Array und je nach „Format“ Parametern I auf die create Funktion übergeben, soll die Klasse ändern („grün“ Klasse für „gut“, „rot“ Klasse für „schlecht“):Jquery UI Dialog bedingte Formatierung

var array = [["bullet1","bad"],["bullet2","good"], ["bullet3","bad"],["bullet4","good"]]; 

$('#a-button').click(function() { 
var current = 0; 
//current dynamically changes in the longer version of the code 
var format = array[0][1]; 
createDialog(array[current][0], current, format); 
}); 

function createDialog(data, current, format) { 
var $div = $('<div>'); 
$div.html(data).dialog({ 

//condition I add which breaks the page 
if (array[current][1] == "bad") { format = "red"; 
} else { 
format = "green"; 
} 

dialogClass: format, 
width:"auto", 

}); 
} 

als Referenz ist mein CSS wie folgt:

.ui-dialog.red { 
border: 3px solid red; 
} 

.ui-dialog.green { 
border: 3px solid green; 
} 

Kann jemand mir die richtige Syntax diese Bedingung hinzugefügt werden, ohne den Code zu brechen bitte (der Code wird funktionieren, wenn Sie die Bedingung entfernen)?

Antwort

0

Sie können ternary operator verwenden dialogClass eine Erklärung

function createDialog(data, current, format) { 
var $div = $('<div>'); 
$div.html(data).dialog({ 
    dialogClass: array[current][1] == "bad"?"red":"green", 
    width:"auto", 
}); 
} 
zu machen