点击,切换二级知识点:

1-: 可以点击 [上一节][下一节] 切换 二级知识点, 同时 右边的 目录也会相应的展开 和关闭.

2-: 也可以直接点击 右边的 目录 进行知识点的切换.

----------------------------------------------------------

1: 生成 知识点页面的函数.

  

1     public functionlistAction()2 {3         //知识点id:
4         $knowledgeId = $_REQUEST["knowledgeId"];5
6         $DetailsModel = newDetailsModel();7         $where["where"] = " knowledgeId = $knowledgeId order by orderBy asc , id asc ";8
9         $data = $DetailsModel->getDataList($where);10
11         //节奏:
12         $parameter["list"] = $data;13         //知识点:
14         $parameter["KnowledgeModel"] = new KnowledgeModel($knowledgeId);15         //知识点评价:
16         $HEvaluationProxyController = newHEvaluationProxyController();17         $parameter["evaluation"] = $HEvaluationProxyController->getEvaluationByKnowledgeIdService($knowledgeId);18
19
20         if (isset($_SESSION["userId"]))21 {22             //给知识点增加一条学习记录:
23             $HCourseRecordProxyController = newHCourseKnowledgeRecordProxyController();24
25             $userId  =$_SESSION["userId"];26             $KnowledgeModel = new KnowledgeModel($knowledgeId);27             $courseId = $KnowledgeModel->courseId;28             $HCourseRecordProxyController->insertRecordService($userId, $courseId, $knowledgeId);29 }30
31
32         //泥塑:33 // if ($knowledgeId == 35)34 // {35 //     $this->display("Home/Course/ns/ns00.php", $parameter);36 // }37 // elseif ($knowledgeId == 96 ) {38 //     //大足石刻:39 //     $this->display("Home/Course/dzsk/dzsk00.php", $parameter);40 // }41 // elseif ($knowledgeId == 156) {42 //     //皮影:43 //     $this->display("Home/Course/piying/piying00.php", $parameter);44 // }45 // else46 // {47 //     $this->display("Home/detailsList.php", $parameter);48 // }49 //50
51
52 //获取知识点中的 所有的 二级知识点.按照排序:
53         $KnowledgeModel = new KnowledgeModel($knowledgeId);54         $courseId = $KnowledgeModel->courseId;55         $where2["where"] = " courseId = $courseId order by orderBy asc , id asc ";56         $data2 = $KnowledgeModel->getDataList($where2);57
58         $HKnowledgeProxyController = newHKnowledgeProxyController();59         $list = $HKnowledgeProxyController->getTreeService($data2["rows"], 0, 0);60
61         $listArr = array();62         $num = 1;63         foreach ($list as $k => $model)64 {65             foreach ($model->child as $k2 => $model2)66 {67                 $listArr[$num] = $model2->id;68                 $num++;69 }70 }71
72         //当前知识点对应的key:
73         $now_key = array_search($knowledgeId, $listArr);74         //总数:
75         $totalnum = count($listArr);76
77         //上一个知识点id:
78         if ($now_key == 1) {79             $beforeValue = $listArr[1];80
81         } else{82             $beforeValue = $listArr[$now_key - 1];83 }84
85         //下一个知识点id:
86         if ($now_key == $totalnum) {87             $afterValue = $listArr[$totalnum];88         } else{89             $afterValue = $listArr[$now_key + 1];90 }91
92
93         //echo "<pre>";94 // var_dump($beforeValue);95 // var_dump($afterValue);96 // var_dump($listArr);
97
98         $parameter["beforeValue"] = $beforeValue;99         $parameter["afterValue"] = $afterValue;100
101
102
103         $this->display("Home/detailsList.php", $parameter);104
105
106
107
108
109
110
111
112
113
114         //大足石刻 01115 // $this->display("Home/Course/dzsk/dzsk00.php", $parameter);116 // $this->display("Home/Course/dzsk/dzsk01.php", $parameter);117 // $this->display("Home/Course/dzsk/dzsk02.php", $parameter);118 // $this->display("Home/Course/dzsk/dzsk03.php", $parameter);119 // $this->display("Home/Course/dzsk/dzsk04.php", $parameter);
120
121     }

  

载入的 detailList.php 页面:

1 <?php2
3 //节奏:
4 $list = $parameter["list"];5
6 //知识点:
7 $KnowledgeModel = $parameter["KnowledgeModel"];8
9 //知识点评价:
10 $evaluation = $parameter["evaluation"];11
12 //课程:
13 $CourseModel = new CourseModel($KnowledgeModel->courseId);14
15 //课程用户: 以user为主:
16 $UserModel = new UserModel($CourseModel->userId);17
18 if ($UserModel->getDB) {19     $userName = $UserModel->userName;20 }21 else
22 {23     $AdminModel = new AdminModel($CourseModel->userId);24     $userName = $AdminModel->adminName;25 }26
27 //上一个:
28 $beforeValue = $parameter["beforeValue"];29
30 //下一个:
31 $afterValue = $parameter["afterValue"];32
33
34  ?>
35
36
37
38
39  <!-- 评价 -->
40  <div class="evaluate" >
41      <span class="evaluateTitle" style="cursor:pointer;"  οnclick="shoucang(<?php echo $CourseModel->id; ?>)" >收藏&nbsp;&nbsp;<span style="color:red;" class="glyphicon glyphicon-heart"></span></span>
42      <span class="evaluatePeople">(<?php echo $evaluation["peopleNum"]; ?>人评价)</span>
43      <span class="evaluateScore"><span><?php echo $evaluation["score"]; ?></span>.0</span>
44      <span class="evaluateStar" οnclick="toEvaluation(<?php echo $KnowledgeModel->id; ?>)">
45
46         <?php for ($i = 1; $i <= $evaluation["score"]; $i++): ?>
47          <span class="glyphicon glyphicon-star starColor"></span>
48          <?php endfor; ?>
49
50          <?php for ($i = 1; $i <= 5 - $evaluation["score"]; $i++): ?>
51         <span class="glyphicon glyphicon-star-empty"></span>
52          <?php endfor; ?>
53      </span>
54      <span class="evaluateTitle" >知识点评价</span>
55
56      <!-- 访问量: -->
57      <span class="numb">访问量: <?php echo $CourseModel->numb; ?> 人次</span>
58  </div>
59
60
61
62
63  <!-- 目录 -->
64
65  <?php if (!empty($list["rows"])): ?>
66       <div class="catalog" style="display: none;">
67           <img  src="<?php echo PROJECT . 'YYFramework/Public/images/ey/catalog.png';  ?>" >
68
69           <ul>
70
71               <?php foreach ($list["rows"] as $k => $v): ?>
72                  <li><a href="#name<?php echo $v->id; ?>"><?php echo $v->title; ?></a></li>
73               <?php endforeach ?>
74
75           </ul>
76       </div>
77
78  <?php endif ?>
79
80
81  <!-- 节奏 -->
82  <div class="allDetails">
83
84     <?php foreach ($list["rows"] as $k => $v): ?>
85         <div class="detail">
86             <div class="detailTitle"><a id="name<?php echo $v->id; ?>"><?php echo $v->title; ?></a></div>
87             <div class="detailContent">
88
89
90                 <!-- 节奏的图文: -->
91
92                 <?php93
94                     $DetailsWordsModel = newDetailsWordsModel();95                     $where_1["where"] = " detailsId = " .$v->id. " order by orderBy asc ,id asc ";96                     $data_1 = $DetailsWordsModel->getDataList($where_1);97                  ?>
98
99                  <?php foreach ($data_1["rows"] as $k1 => $v1): ?>
100                     <?php echo $v1->imageText; ?>
101 <!--                     <div class="defaultHr"></div> -->
102                  <?php endforeach ?>
103
104
105                  <!-- 节奏的 视频 -->
106
107                  <?php108                      $DetailsVideosModel = newDetailsVideosModel();109                      $where_2["where"] = " detailsId = " .$v->id. " order by orderBy asc ,id asc ";110                      $data_2 = $DetailsVideosModel->getDataList($where_2);111
112                   ?>
113
114                   <?php foreach ($data_2["rows"] as $k2 => $v2): ?>
115
116                         <?php if (substr($v2->video, stripos($v2->video, '.')+1) == 'swf'): ?>
117                             <div class="videoDiv">
118                                     <h4 style="float: left;"><?php echo $v2->title;?></h4>
119                                     <embed src="<?php echo UPLOAD_HTTP . $v2->video; ?>" >
120                             </div>
121                         <?php else: ?>
122
123                             <div class="videoDiv">
124                                 <h4 style="float: left;"><?php echo $v2->title;?></h4>
125                                 <video controls>
126                                     <source src="<?php echo UPLOAD_HTTP . $v2->video; ?>" type="video/mp4">
127                                 </video>
128                             </div>
129
130                         <?php endif ?>
131
132
133
134
135
136
137 <!--                     <div class="defaultHr"></div> -->
138                   <?php endforeach ?>
139
140
141                   <!-- 节奏的 H5 -->
142                    <?php143                        $DetailsHModel = newDetailsHModel();144                        $where_3["where"] = " detailsId = " .$v->id. " order by orderBy asc ,id asc ";145                        $data_3 = $DetailsHModel->getDataList($where_3);146
147                     ?>
148
149                     <?php foreach ($data_3["rows"] as $k3 => $v3): ?>
150
151                         <div class="iframeDiv">
152                             <iframe src="<?php echo $v3->url; ?>"></iframe>
153                         </div>
154
155
156                         <?php157                             $last = $data_3["total"] -1;158                          ?>
159                         <?php if ($k3 < $last): ?>
160 <!--                             <div class="defaultHr"></div> -->
161                         <?php endif ?>
162                     <?php endforeach ?>
163
164
165
166             </div>
167         </div>
168     <?php endforeach ?>
169  </div>
170
171
172  <div class="detailButton">
173      <div class="detailButton_left">
174          <div class="button2" οnclick="changeChapter(<?php echo $beforeValue; ?>)">上一节</div>
175      </div>
176      <div class="detailButton_right">
177          <div class="button2" οnclick="changeChapter(<?php echo $afterValue; ?>)">下一节</div>
178      </div>
179      <div class="clearBoth"></div>
180  </div>
181
182  <div style="height:100px;"></div>

2 .点击 [上一节][下一节]触发的函数. changeChapter()

1     functionchangeChapter(knowledgeId)2 {3
4
5         //样式:
6         $("li[data-kid="+knowledgeId+"]").siblings("li[date-level='1']").addClass("hide");7         $("li[data-kid="+knowledgeId+"]").prevUntil("li[date-level='0']").removeClass("hide");8         $("li[data-kid="+knowledgeId+"]").nextUntil("li[date-level='0']").removeClass("hide");9
10         //触发点击事件:
11         $("li[data-kid="+knowledgeId+"]").click();12     }

3. 触发的  li 的点击事件.      li的点击事件触发的函数.

1     functionchangeDetails(knowledgeId, node)2 {3         //console.log($(node).attr('date-level'));
4
5         //判断点击的是一级 还是二级.
6         //if ($(node).attr('date-level') == 0) {
7         ////显示当前节点
8         //if ($(node).find('.circleChose').hasClass('hide')) {
9         //$(node).find('.circleChose').removeClass('hide');
10         //}
11
12         ////隐藏其他节点:
13         //$(node).siblings('li').each(function(index, el) {
14         //if (!$(this).find('.circleChose').hasClass('hide')) {
15         //$(this).find('.circleChose').addClass('hide');
16         //}
17         //});
18         //} else {
19         ////二级:
20         //$(node).prevUntil("li[date-level = 0]");
21         //// console.log($(node).prevUntil("li[date-level = 0]"));
22         ////找到直到 data-level = 0 为止的所有选项.
23         //var tempList = $(node).prevUntil("li[date-level = 0]");
24
25         //if (tempList.length == 0) {
26         ////当前是第一个子节点:
27         ////显示当前节点
28         //// console.log('222');
29         //if ($(node).prev().find('.circleChose').hasClass('hide')) {
30         //$(node).prev().find('.circleChose').removeClass('hide');
31         //}
32
33         ////隐藏其他节点:
34         //$(node).prev().siblings('li').each(function(index, el) {
35         //if (!$(this).find('.circleChose').hasClass('hide')) {
36         //$(this).find('.circleChose').addClass('hide');
37         //}
38         //});
39         //} else {
40         //// tempList.last().prev()
41         ////显示当前节点
42         //// console.log('333');
43         //if (tempList.last().prev().find('.circleChose').hasClass('hide')) {
44         //tempList.last().prev().find('.circleChose').removeClass('hide');
45         //}
46
47         ////隐藏其他节点:
48         //tempList.last().prev().siblings('li').each(function(index, el) {
49         //if (!$(this).find('.circleChose').hasClass('hide')) {
50         //$(this).find('.circleChose').addClass('hide');
51         //}
52         //});
53
54         //}
55         //}
56
57         //console.log('1111111111111111111111');
58         if ($(node).attr('date-level') == 0) {59             //console.log('22222222');
60             $(node).siblings('li[date-level="0"]').nextUntil('li[date-level="0"]').addClass('hide');61             $(node).nextUntil('li[date-level="0"]').toggleClass('hide');62         }else{63 getDetails(knowledgeId);64 }65
66
67
68     }

点击的是 一级知识点, 不会获取知识点内容;  只有点击的是二级知识点 才会获取知识点内容.

1     functiongetDetails(knowledgeId)2 {3 $.ajax({4             url: 'action.php?c=HDetailsProxy&a=list',5             type: 'POST',6             dataType: 'html',7             data: {'knowledgeId': knowledgeId},8             success: function(data){9                 $(".leftDiv2").html(data);10
11
12 }13 });14
15
16
17
18     }

3 .右边 目录的 html结构:

图中红色部分是 一级知识点.  daa-level = 0;

data-kid : 指的是 这个Knowledge的id.

转载于:https://www.cnblogs.com/cbza/p/7132464.html

[上一个][下一个][上一节][下一节]相关推荐

  1. 和达摩院深度绑定,阿里云下一个十年,成为“云上的阿里巴巴”

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 整理 | 非主流 出品 | AI科技大本营(ID:rgznai100) 2009 - 2019,阿里云已经走过了 10 年时光. 在此次的阿里 ...

  2. 2020 北京智源大会“云上”开幕, 中外顶尖学者畅想AI的下一个十年

    6月21日,由北京智源人工智能研究院(以下简称智源研究院)主办的2020北京智源大会在线上成功开幕,会期四天.北京智源大会是智源研究院主办的年度国际性人工智能高端学术交流活动,2019年举办了首届大会 ...

  3. 库克:AR将成为下一个核心科技,苹果是地球上竞争对手最多的企业

    2019-12-11 16:18:53 智东西(公众号:zhidxcom) 编 | 王颖 导语:库克指出,10年后的苹果将是硬件.软件和服务组成的产品企业. 智东西12月11日消息,苹果CEO蒂姆·库 ...

  4. 在Kubernetes上运行SAP UI5应用(下): 一个例子体会Kubernetes内容器的高可用性和弹性伸缩...

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用 ...

  5. Javascript JQuery获取当前元素的兄弟元素/上一个/下一个元素(转)

    var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; //获得s的下一个 ...

  6. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)...

    在接口测试和压力测试过程中,经常会将几个流程串联起来才能测试.如:我要进行获取用户信息接口测试,我就要先登录成功后,才能获取用户信息.所以,我就要首先要登录,获得我的登录凭证(tokenId或tick ...

  7. mysql 按重复排序_php-按日期排序并允许重复的日期时,获取MySQL中的上一个和下一个记录...

    我已经尝试寻找其他帮助来解决这个问题,但是我没有得到.假设我有一张看起来像下面的表格. +----+--------------+------------+ | id | date_col | lab ...

  8. 织梦?php?调用栏目,dedecms列表页内容页模板调用上一个栏目下一个栏目方法

    织梦CMS内容页有上一篇下一篇文章,没有上一个栏目下一个栏目,我们可以不用修改程序内核文件,直接在模板里用"runphp"输出上一个栏目和下一个栏目. 上一个栏目下一个栏目标签写法 ...

  9. 从体验上拉开差距,Serverless 将成就云计算的下一个 10 年!

    简介:差距都在细节上.Serverless 将成就云计算的下一个 10 年! 差距都在细节上. Serverless 要成就云计算的下一个 10 年,不仅需要在技术上持续精进,也需要在产品体验上精耕细 ...

最新文章

  1. VBA学习笔记(9)--生成点拨(1)
  2. (十五)java B2B2C 多级Springboot多租户电子商城系统 Springboot整合RabbitMQ
  3. 【通知】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方向...
  4. 得力科学计算机怎么求余,山商“郭叔”:妙招讲高数 考研路上得力导师
  5. yum 安装apache php mysql
  6. 【全套H5前端教程--打包下载地址】
  7. 个人邮箱怎么申请?个人外贸邮箱推荐
  8. 普度大学计算机科学博士,Purdue的Computer Sciences「普渡大学西拉法叶分校计算机科学系」...
  9. 自旋锁以及Java中的自旋锁的实现
  10. ascii码中的A的代码是什么?
  11. springboot毕设项目电信CRM系统的设计与实现3z7u5(java+VUE+Mybatis+Maven+Mysql)
  12. 关闭休眠扩大c盘空间
  13. 大数据应用安全研究报告
  14. 没密码?巧用工具帮你破解压缩包文件
  15. 美的空气能计算机故障维修,美的空气能故障代码,常见故障原因汇总,勿要错过...
  16. 神州退市,一嗨要上市
  17. 监控系统中的服务器,监控系统中服务器的作用
  18. Sql Server 2008 R2 完全卸载步骤
  19. Python数据驱动模块DDT
  20. gradle编译报错:警告: [rawtypes] 找到原始类型: Class

热门文章

  1. exist和not exist用法
  2. 后缀是lnk是什么文件_ink文件是什么文件?与lnk文件只差一个字母,却有天壤之别!...
  3. 中望3D2022 缝合
  4. (翻译)W3C的Turtle文档
  5. 使用Ant自动化发布web工程
  6. QPlayer插件究竟该怎么导入网易云音乐?
  7. HBase系列从入门到精通(二)
  8. javascript中的异步调用,promise对象,async/await用法
  9. 2018Postgres中国用户大会(大象汇)—最全资料下载,PPT+回顾视频...
  10. Android studio录屏按钮不能用怎么办,Android多态实现原理