私の必要性は、json で記述された条件でボタンを生成することです。助けてください、私は初心者で、行き詰まっています。問題は、私のコードがテキスト「未定義」のボタンを生成し、ボタンをクリックしても何も起こらないことです。
これが私のJSONコードです(http://www.jsoneditoronline.org/でのチェック結果により有効ですが、以下のhtmlコードでは機能しません):
{
"Caption": "Module caption",
"IconsDirectory": "C://Images/",
"Buttons": [
{
"Conditions": [
{
"ConditionText": "1 == 1",
"ButtonText": "Text1",
"Visible": true,
"Colors": {
"FontColor": "#FFFFFF",
"BGColor": "#669933"
},
"BButtonText": {
"TText": "Textt1"
},
"Size": {
"Width": 200,
"Height": 50
},
"Icon": {
"FileName": "Smile.png",
"Width": 16,
"Height": 16
},
"Url": {
"UrlAddress": "http://www.google.com",
"OpenNewWindow": true
},
"JavaScriptAction": {
"Text": "alert('ok');"
}
},
{
"ConditionText": "2 == 2",
"ButtonText": "Text2",
"Visible": true,
"Colors": {
"FontColor": "#0FFFFF",
"BGColor": "#FF9966"
},
"BButtonText": {
"TText": "Textt1"
},
"Size": {
"Width": 200,
"Height": 50
},
"Icon": {
"FileName": "Smile.png",
"Width": 16,
"Height": 16
},
"Url": {
"UrlAddress": "http://www.google.com",
"OpenNewWindow": true
},
"JavaScriptAction": {
"Text": "alert('ok');"
}
}
]
}
]
}
html コード:
<html>
<head>
<title>SMButtons</title>
<script src="jquery/jquery-1.4.2.js"></script>
<script type="text/javascript">
//When document loaded.
$(document).ready(function(){
// Get data from file as JSON
$.getJSON('weekendtask.json', function(data) {
//var buttons = data.Buttons;
//$.each(buttons, function(key, val)
//{
//$('<li><input type="button" onClick="'+ val.Conditions[0].JavaScriptAction +'" value="'+ val.Conditions[0].ButtonText +'"/> </li>').appendTo('#ulObj');
//$('<li><input type="button" value="'+ val.Conditions[1].BButtonText.TText +'"/></li>').appendTo('#ulObj');
var res=""
$.each(data.Buttons, function(key, button){
$.each(button.Conditions,function(key,condition){
// console.log(condition)
res+="<li>"
res+='<input type="button"' +
//'" value="'+ '"Ttt"' +
'" value="'+ condition.ButtonText +
//'" value="'+ data.Buttons.Conditions.ButtonText +
'" onclick="' + condition.JavascriptAction +
'" style="background-color:'+condition.Colors.BGColor+' color:'+condition.Colors.FontColor+
'"/>'
res+="<\/li><\/br><\/br>test<\/br>"
})
})
$(res).appendTo('#ulObj')
//});
});
});
window.onload = function(){ alert("welcome"); }
</script>
</head>
<body bgcolor="silver">
<br>
<br>
<div>
<ul id='ulObj'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
</body>
</html>