我正在生成一个 Flash SWF 列表,信息来自一个 ajax 调用,该调用返回一个 json 对象,我循环遍历该对象以使用我的 makeAppRow 函数创建数据行。
makeAppRow = function(myData){
var myStr = '<div class="fileEntry">'
myStr = myStr +'<div class="appDate">'+dateFormat(myData.date_swf, "dS mmmm, yyyy, h:MM TT")+'</div>'
myStr = myStr +'<div class="appName">'+myData.name_swf+'</div>'
myStr = myStr +'<div class="appOptions" data>'
myStr = myStr +'<div class="gotoAppBtn" data-options="'+myData+'">Open App</div>'
myStr = myStr +'</div>'
myStr = myStr +'</div>'
$('#appData').append(myStr);
}
我需要将 json 数据 append 到 gotoAppBtn
以便在单击它时我可以从 append 的 json 对象中读取数据并在我的点击函数中使用它,如您所见我一直在尝试使用 html5 数据嵌入数据,但我无法让它工作。
<div class="gotoAppBtn" data-options="'+myData+'">Open App</div>
我有一个函数,当单击按钮时它会加载到 swf 中。
$('.gotoAppBtn').live('click', function(){
//alert('button clicked')
var myData = $(this).data("options")
alert('../userfiles/'+myData.id_ugp+'/'+myData.id_swf+'/'+myData.launchfile_swf+'')
console.log(myData);
var flashvars = {};
var params = {};
params.menu = "false";
params.quality = "best";
params.scale = "noscale";
var attributes = {};
attributes.id = "flashAppDisplay";
attributes.name = "flashAppDisplay";
swfobject.embedSWF(
'../userfiles/'+myData.id_ugp+'/'+myData.id_swf+'/'+myData.launchfile_swf+'', 'flashAppDisplay', myData.width_swf, myData.height_swf, myData.version_swf ,"../FAVideo/expressInstall.swf", flashvars, params, attributes)
});
但数据似乎不存在,关于我哪里出错的任何指示,或实现此目标的更好方法?
最佳答案
在将它放入属性之前,您需要将 myData
javascript 对象转换为字符串。
查看来自 json2.js 的 JSON.stringify
.
您还可以使用 .data() 函数
$('#appData .gotoAppBtn:last').data("options",myData)
关于javascript - 使用 data() 添加一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512844/