我这里有点问题。 ¿我如何在Jquery中操作动态生成的html?
我的功能如下:
generatesomething : function(DestinationID,data){
result = $.DoSomething(data)
$('#'+Destinationid).html(data);
}
在其他方面,脚本通过ajax接收数组。当然,我将迭代数组:
$.each(response, function(key, value){
ThisHtml = '<div id="div'+key'"></div>';
$('#MyPlaceHolderDiv').html(ThisHTML)
//In this point, i really need to call my first function
$.generatesomething('div'+key',data)
//But not works!!!!
}
我如何使用我的函数操作生成的div?
编辑:为了澄清我的问题,我将粘贴确切的功能。
我做了这个功能。请不要嘲笑我的代码,我是jquery的新手。
1.3中({ / funciones Generales /
piegraph : function(GraficoDestino,tipo,arrayDatos,dato1,dato2,tooltiptemplate,labeltemplate){
var dataPoints = [];
$.each(arrayDatos, function(key, value){
var temporal = {};
temporal.label = value[dato1];
temporal.y = parseInt(value[dato2]);
dataPoints.push(temporal);
});
var opciones = {
animationEnabled : true,
data : [{
type : tipo,
startAngle : 0,
toolTipContent : tooltiptemplate,
indexLabel : labeltemplate,
dataPoints : dataPoints,
}]
};
$('#' + GraficoDestino).CanvasJSChart(opciones);
}
这个功能效果很好......如果我可以给它目的地div。
在我的脚本的其他部分,我有一个ajax调用:
Generadisco: function(){
var datos = {
"accion":"generadisco"
};
$.ajax({
type: "POST",
url: "blahblah.php",
data: datos,
dataType: "json",
success:function(response){
$.each(response, function(key, value){
esteHTML = '<div id="divdisco'+key+'"></div>
$('#discosplace').append(estehtml);
//the div is generated... but when i do...:
$(this).piegraph('divdisco'+key,'pie', response[3],0,1, "{label} #percent%","{label} ");
//nothing happens
});
}
});
}
答案 0 :(得分:0)
我在您的代码中发现了一些错误:
$('#MyPlaceHolderDiv').html(ThisHTML)
$.generatesomething('div'+ key ,data)
必须是:
$('#MyPlaceHolderDiv').html(ThisHTML);
$.generatesomething('div'+key',data);
还尝试在函数的第一行添加console.log(DestinationID)以查看传递的参数(DestinationID)
答案 1 :(得分:0)
如果您在ajax调用后生成动态元素,请尝试使用async:false。
$。AJAX({ url:&#34; abcd.html&#34;, 异步:假 })。然后(函数())