以下是jstree的一部分,http://www.jstree.com/代码。
我有几个关于这个 javascript/jquery 的问题要问。 (实际上几乎所有)
$('#pages-wrapper').tree({
callback:{
"onchange":function(node,tree){
document.location='pages.php?action=edit&id='+node.id.replace(/.*_/,'');
},
"onmove":function(node){
var p=$.tree.focused().parent(node);
var new_order=[],nodes=node.parentNode.childNodes;
for(var i=0;i<nodes.length;++i)new_order.push(nodes[i].id.replace(/.*_/,''));
$.getJSON('/ww.admin/pages/move_page.php?id='+node.id.replace(/.*_/,'')+
'&parent_id='+(p==-1?0:p[0].id.replace(/.*_/,''))+'&order='+new_order);
}
Q1。 var p=$.tree 中的 $ 在做什么?
Q2。 .parent(node) 指的是什么?
Q3。就是这一行,var new_order=[],nodes=node.parentNode.childNodes;同时清除两个变量? node.parentNode.childNodes 在做什么?
提前致谢。
以下是附加代码。
html如下
<div id="pages-wrapper">
<ul>
<li id="page_24">
<a href="pages.php?id=24"><ins> </ins>Home</a>
</li>
<li id="page_25">
<a href="pages.php?id=25"><ins> </ins>Second Page</a>
</li>
<li id="page_30"><a href="pages.php?id=30"><ins> </ins>Information</a>
<ul>
<li id="page_31"><a href="pages.php?id=31"><ins> </ins>Illustration</a></li>
</ul>
</li>
....
....
移动页面.php
require '../admin_libs.php';// this one does all the db queries
$id=(int)$_REQUEST['id'];
$to=(int)$_REQUEST['parent_id'];
$order=explode(',',$_REQUEST['order']);
dbQuery("update pages set parent=$to where id=$id");
for($i=0;$i<count($order);++$i){
$pid=(int)$order[$i];
dbQuery("update pages set ord=$i where id=$pid");
echo "update pages set ord=$i where id=$pid\n";
}
最佳答案
What $ in var p=$.tree is doing?
$
是流行的 javascript 框架 jQuery、prototype 等使用的辅助对象。
$.tree
指的是在某处定义的扩展 tree
。
What is .parent(node) referencing to?
看起来它找到了当前所选节点的父节点,以了解传递给 php 脚本的 parentID。 (您需要让我们知道您使用的是什么树框架...)
Is this line, var new_order=[],nodes=node.parentNode.childNodes; declearing two variables at the same time?
是的,它在同一行声明了 2 个单独的变量,这是 legel Javascript。
And what is node.parentNode.childNodes doing?
它获取当前所选节点的兄弟元素列表。
关于javascript - 关于javascript中$., .parent(node) 和节点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705075/