Замена контента при нажатии на пункты древовидного меню
|
|
Безымянный7876 | Дата: 25 Сентября 2011, 19:26 | Сообщение # 1 | ● ● ● ● ● Статус: Offline | Добрый день, родные! В общем, такая проблема. Есть скрипт, функция которого заключается в том, что при нажатии на разные ссылки меняется исходный текст. Этот скрипт мне нужно объединить с древовидным меню, но у меня не получается!... Древовидное меню работает по такому принципу, что один скрипт прописывается в коде к странице, а другой заливается в корневую папку. В коде страницы прописывают пункты меню и ссылки к ним, а в корневой папке идёт привязка ссылок к пунктам. Скину все скрипты ниже. Может кто-нибудь сможет объединить или хотя бы направить. Лично сам пробовал разные способы. Кто будет кидать варианты, откомментирую...
Скрипт замены контента: Code <script language="javascript"> var texter=Array(); texter[1]='<iframe src="http://nimpo-world.com/dir/2-1-0-1" style="border: medium none ;" width="490" height="100%" hspace="0" vspace="0" allowtransparency="true" scrolling="no" frameborder="0"></iframe>'; texter[2]='<iframe src="http://nimpo-world.com/dir/2-1-0-2" style="border: medium none ;" width="490" height="239" hspace="0" vspace="0" allowtransparency="true" scrolling="no" frameborder="0"></iframe>'; function spisok(id){ return texter[id]; } </script>
<a href="javascript: void(0);" onClick="document.getElementById('spisok').innerHTML = spisok(1);return false;">1</a> <a href="javascript: void(0);" onClick="document.getElementById('spisok').innerHTML = spisok(2);return false;">2</a> <a href="javascript: void(0);" onClick="document.getElementById('spisok').innerHTML = spisok(3);return false;">3</a>
Скрипт меню в странице: Code <!--
d = new dTree('d');
d.add(0,-1,'Меню'); d.add(1,0,'Пункт 1','Ссылка 1'); d.add(2,1,'Пункт 2','Ссылка 2'); d.add(3,2,'Пункт 3','Ссылка 3')
document.write(d);
//-->
Скрипт привязывания ссылки к пункту: Code // Creates the node icon, url and text
dTree.prototype.node = function(node, nodeId) {
var str = '<div class="dTreeNode">' + this.indent(node, nodeId);
if (this.config.useIcons) {
if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node);
if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node;
if (this.root.id == node.pid) {
node.icon = this.icon.root;
node.iconOpen = this.icon.root;
}
str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" />';
}
if (node.url) {
str += '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"';
if (node.title) str += ' title="' + node.title + '"';
if (node.target) str += ' target="' + node.target + '"';
if (this.config.useStatusText) str += ' onmouseover="window.status=\'' + node.name + '\';return true;" onmouseout="window.status=\'\';return true;" ';
if (this.config.useSelection && ((node._hc && this.config.folderLinks) || !node._hc))
str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"';
str += '>';
}
else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id)
str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">';
str += node.name;
if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>';
str += '</div>';
if (node._hc) {
str += '<div id="d' + this.obj + nodeId + '" class="clip" style="display:' + ((this.root.id == node.pid || node._io) ? 'block' : 'none') + ';">';
str += this.addNode(node);
str += '</div>';
}
this.aIndent.pop();
return str;
}; | | |
|
Andre | Дата: 25 Сентября 2011, 22:11 | Сообщение # 2 | ● ● ● ● ● 1822 сообщения Статус: Offline | Безымянный7876, и ты думаешь что кто-то будет разбираться в твоем коде? да еще с какими-то ифреймами , ищи дебилов в другом месте! | | |
|
Andre | Дата: 25 Сентября 2011, 22:17 | Сообщение # 3 | ● ● ● ● ● 1822 сообщения Статус: Offline | document.getElementById('spisok').innerHTML не вижу объекта с данным идом | | |
|
Безымянный7876 | Отредактировал Безымянный7876 - Воскресенье, 25 Сентября 2011, 23:02 Дата: 25 Сентября 2011, 23:02 | Сообщение # 4 | ● ● ● ● ● Статус: Offline | Andre, Вместо фреймов можно, поставь цыферку 1... Я фреймы оставил для того, чтобы отобразить содержание ссылок... Ну а куда мне обратиться? У меня правда не получается...
Да есть объект... <div id="spisok">Исходный текст</div>... Не в этом суть... | | |
|
Andre | Дата: 26 Сентября 2011, 10:21 | Сообщение # 5 | ● ● ● ● ● 1822 сообщения Статус: Offline | Обратись туда где эти скрипты взял, я не вижу полного комплекта скриптов требуемых для формирования ссылок. Не расписаны значения d.add(1,0,'Пункт 1','Ссылка 1'); , возможно параметров больше так как есть str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"'; | | |
|
Безымянный7876 | Дата: 26 Сентября 2011, 18:14 | Сообщение # 6 | ● ● ● ● ● Статус: Offline | Andre, Дело в том, что первый скрипт в комментах не нуждается, ибо там простой innerHTML, а вот что касается древовидного меню, то я его взял с сайта по CS 1.6, у которых такое меню стояло. На специализированных сайтах я нужного не нашёл, потому что ни одно меню не хотело работать. Я знал, что понадобится полный скрипт, но кидать его не хотел, потому что там много лишней инфы. Но скину, может тебе это поможет... Правда сюда он не помещается, так что я тебе ссылку скинул... После просмотра ссылки прочитай ниже и не сердись))
menu.js
В коде слишком много лишней инфы, которая не нужна в принципе... Думаю, что нужно просто отредактировать это Quote str+= '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"'; И ниже строчка идёт подобного плана Quote str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">'; str += node.name; if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>'; Вот здесь прописана ссылка так, что вне скрипта она примерно так выглядит Quote <a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">node.name</a> А у меня ссылка, как ты видел выше, такая Quote <a href="javascript: void(0);" onClick="document.getElementById('spisok').innerHTML = spisok(nodeId);return false;">node.name</a> То есть фактически немножко добавить надо, но у меня не получилось... Понятно хоть, что я объясняю?Добавлено (26 Сентябрь 2011, 18:14) --------------------------------------------- Я что так запариваюсь.. Казалось бы, можно это меню сделать гораздо проще, например с помощью div-ов, но такой код много места занимает, а через iframe нет смысла, потому что тогда исходный текст не будет на пункты менятся. Ну, короче, скрипт замены контента при нажатии на ссылки должен быть вместе, а не разбит на файлы... А если у меня объект с идом spisok будет в странице сайта прописан, а пункты фреймом вставляться, то не будет работать. Пробовал... | | |
|