已经搜查,在现场以及在互联网上,到目前为止任何运气再次搜索。无法通过jQuery的
我通过从原始HTML源克隆它们具有一组动态生成的div通过JQuery
。 虽然我能够与possitioning性质从原来的div设置和播放,克隆那些不reponding在所有(既不是height
和width
性质),尽管我可以在没有问题的选择。
原来这里是HTML
:
<div style="width: 504px; height: 252px; left: 333px; top: 135px;" id="mainHolder">
<div style="width: 504px; height: 252px;" id="holder">
<div style="width: 126px; height: 63px;" id="idTile_5369" class="tile"></div>
<div style="width: 126px; height: 63px;" id="idTile_5373" class="tile"></div>
<div style="width: 126px; height: 63px;" id="idTile_5377" class="tile"></div>
<div style="width: 126px; height: 63px;" id="idTile_5381" class="tile"></div>
</div>
<div id="holderHandler"></div>
</div>
这里是正在应用的CSS
规则:
#mainHolder{
position: relative;
}
#holder, #holderHandler, .tile, .tileHandler{
position: absolute;
}
这里JS
代码:
getDataJsonServer('tiles.php', (function(data){ //getDataJsonServer --> custom function to obtain json data from the server through the JQuery getJson method
var mainHolder=$('#mainHolder');
var tilesHandler=$('#holder .tile', this.mainHolder).clone();
tilesHandler.addClass('tileHandler');
tilesHandler.removeClass('tile');
tilesHandler.attr('id', function(i, idTileHandler){ return 'idTileHandler_'+extractId(idTileHandler); }); //extractId --> custom function that extracts the id
$('#holderHandler', this.mainHolder).append(tilesHandler);
for(var tile in data){
$('#idTile_'+data[tile].idTile, this.mainHolder).css({left: data[tile].position.left, top: data[tile].position.top});
$('#idTileHandler_'+data[tile].idTile, this.mainHolder).css({left: data[tile].positionHandler.left, top: data[tile].positionHandler.top});
}
}
最后,这里的Json
数据被淡化:
"data": [{
"idTile": 5369,
"position": {
"left": -62,
"top": 0
},
"positionHandler": {
"left": -62,
"top": 0
}
},
"idTile": 5373,
"position": {
"left": -62,
"top": 0
},
"positionHandler": {
"left": -62,
"top": 0
}
},
"idTile": 5377,
"position": {
"left": -62,
"top": 0
},
"positionHandler": {
"left": -62,
"top": 0
}
},
"idTile": 5381,
"position": {
"left": -62,
"top": 0
},
"positionHandler": {
"left": -62,
"top": 0
}
}]
虽然for/in
循环内的最后一行正常使用,另一条线路根本就没有设置left
和top
性质,没有抛出任何错误消息。
为什么会发生这种情况?是否是因为我怀疑第二组div是否是由他们产生的?我该如何解决它?
编辑:
- 添加由
tiles.php
- 通过
this.mainHolder
在for/in
块(勘误表)变更的this.tilesHandler
retourned JSON对象。
你正试图设置一个属性为一个函数...我认为你想要执行的功能 –
你的意思是使用'.position()'或'.position'作为你的数据中的一个对象'? – Terry
data [tile] .position只是数据中的一个对象 – user2697714