appendTo в JQuery
Всем доброго времени суток:)
Имеется нумерованый список ul:
<ul id="main">
<img onclick="getTreeMain('main');" class="imgTree" src="./resources/image/03.png" /> Тык ми!
</ul>
При нажатии на картинку выполняется следующий код:
function getTreeMain(w)
{
$.ajax({
type: 'POST',
data: "object="+w,
async: true,
url: './engine/modules/getData/getTree.php',
dataType: 'Json',
success: openTreeObj
});
}
function openTreeCdng(data)
{
for (var i = 0; i < data.length; i++)
{
$("<ul><img id= \"oid_"+data[i].objId+"\" onclick = \"getTreeObj("+data[i].objId+");\" class=\"imgTree\" src=\"./resources/image/04.png\" />"+data[i].objCapt+" "+data[i].objName+"</ul>").appendTo("#main");
}
}
Все отрабатывает и к элементу ul "main" достраиваются дочерние объекты нумерованного списка. В каждом из которых так же имеется изображение с индивидуальным ID, при нажатие на которое дочка получает свои дочерние элементы. Код:
function getTreeObj(w)
{
$.ajax({
type: 'POST',
data: "object="+w,
async: true,
url: './engine/modules/getData/getTree.php',
dataType: 'Json',
success: openTreeObj
});
}
function openTreeObj(data)
{
for (var i = 0; i < data.length; i++)
{
$("<ul><img onclick = \"getTreeObj("+data[i].objId+");\" class=\"imgTree\" src=\"./resources/image/04.png\" />"+data[i].objCapt+" "+data[i].objName+"</ul>").appendTo("#oid_"+data[i].objId);
}
}
Но к дочкам объекта "main", элементы не добавляются. Вижу что обращение к серверу есть, и json массив с данными возвращается, обращаюсь к правильно указанным id. Ощущение, что они рпосто не видятся.:blink: Прощу помощи советом!=) |
wUI,А чо Вы хотите этим добица ?
Почему .appendTo - а не append ? http://jquery-docs.ru/Manipulation/appendTo/#selector http://jquery-docs.ru/Manipulation/append/#content |
Deff,
наверное не понятно объяснил. :)Своего рода это дерово объектов. Изначально существует родитель "main", при нажатие на него получаю его подобъекты и они красиво отстраиваются, при нажатии на подобъект он должен получить от серва свои дочерние объекты и их остроить, но этого не происходит. О_о |
Пробовал следующие варианты:
1.
$("#oid_"+data[i].objId).append("<ul><img onclick = \"getTreeObj("+data[i].objId+");\" class=\"imgTree\" src=\"./resources/image/04.png\" />"+data[i].objCapt+" "+data[i].objName+"</ul>");
2.
document.getElementById('oid_'+data[i].objId).innerHTML+="<ul><img onclick = \"getTreeObj("+data[i].objId+");\" class=\"imgTree\" src=\"./resources/image/04.png\" />"+data[i].objCapt+" "+data[i].objName+"</ul>"
Оба не выходят О_о И вот вопрос, почему динамически полученные дочерние объекты достраиваются к жестко прописанному объекту "main", а далее по иерархии нет, т.е. дочерний объект к себе не привязывает своих дочек? Будно динамически отсроеные дочки родителя "main" не видятся. |
Вот пример кода, чтобы понятней было, который можно запустить у себя:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Тег UL</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<style type="text/css">
ul {
list-style-type: none;
margin-left: 10px;
}
li {
list-style-type: none;
margin-left: 10px;
}
img {
cursor: pointer;
}
</style>
<script type="text/javascript">
function getTreeMain(w) {
for (i = 0; i < w; i++) {
$("#main").append("<ul><img id= \"oid_"+i+"\" onclick = \"getTreeObj("+i+");\" src=\"http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png\" />daughter_0_"+i+"</ul>");
}
}
function getTreeObj(w) {
for (i = 0; i < w; i++) {
$("#oid_"+i).append("<ul><img id= \"oid2_"+i+"\" src=\"http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png\" />daughter_1_"+i+"</ul>");
}
}
</script>
</head>
<body>
<ul id="main"><img onclick="getTreeMain(5);" src="http://best-iconki.ru/downloads/PNG/32/programms-0002-1.png"></br>
</ul>
</body>
</html>
|
Цитата:
И второе - У Вас повторяются id - что - не Айс - селектор $("#oid_"+i).будет искать только первый и единственный такой id Возможно устроит подобное.. :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Тег UL</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<style type="text/css">
ul {
list-style-type: none;
margin-left: 10px;
}
li {
list-style-type: none;
margin-left: 10px;
}
img {
cursor: pointer;
}
</style>
<script type="text/javascript">
function getTreeMain(w) {
for (i = 0; i < w; i++) {
var obj = '<ul><img id="oid-0-'+i+'" onclick ="getTreeObj('+i+',this)"';
obj+= 'src="http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png" />';
obj+= 'daughter-0-'+i+'</ul>';//alert(obj)
$("#main").append(obj);
}
}
var J=0; //Добавил для Уникальности id
function getTreeObj(w,a) {//alert("A")
J++;
for (i = 0; i < w; i++) {
var obj = '<ul><img id="oid2-'+J+'-'+i+'"';
obj+= 'src=\"http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png"'
//obj+= 'onclick ="getTreeObj('+J+',this)"'; //можно раскомментить строку
obj+= ' />daughter-'+J+'-'+i+'</ul>';//alert(obj)
$(a).after(obj);
}
}
</script>
</head>
<body>
<ul id="main"><img onclick="getTreeMain(5,this)" src="http://best-iconki.ru/downloads/PNG/32/programms-0002-1.png"></br>
</ul>
</body>
</html>
|
Deff,
Спасибо, Вы как всегда на высоте!=) Указать ошибку долбошарому и вправить руки криворукому! Не понимаю как не заметил того, что пытался привязать элементы дочернии картинке! :D В итоге оставлю вот так:
function getTreeMain(w) {
for (i = 0; i < w; i++) {
$("#main").append("<ul id= \"oid_"+i+"\"><img onclick = \"getTreeObj("+i+");\" src=\"http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png\" />daughter_0_"+i+"</ul>");
}
}
function getTreeObj(w) {
for (i = 0; i < w; i++) {
$("#oid_"+w).append("<ul id= \"oid2_"+i+"\"><img src=\"http://best-iconki.ru/downloads/PNG/32/forsite-0003-5.png\" />daughter_1_"+i+"</ul>");
}
}
|
| Часовой пояс GMT +3, время: 23:11. |