解决Discuz点击diy没反应及TAB切换无反应的问题
我们在进行DZ模板制作时,使用DIY功能去调用论坛中的不同版块的数据,由于DIY会自动增加外面的层,有时会导致某些模板的diy没反应,也有的只会显示不会消失的情况。这是由于JS无法找到相应的节点。
解决Discuz点击diy没反应步骤:
1、使用FTP上传工具,找到static\js目录下的common.js文件。然后右键选择下载该文件。
2、下载到本地(建议下载到桌面,或者新建一个用于存放代码修改文件的文件夹,以便于查找),右键选择”打开方式“,选择使用记事本打开下载的该文件。
3、使用快捷键:“CTRL+F”,查找关键字段: function openDiy()。查找到之后关闭查找窗口,以免影响代码修改。
4、找到以下代码:
function openDiy(){
if(DYNAMICURL) {
window.location.href = SITEURL+DYNAMICURL + (DYNAMICURL.indexOf('?') < 0 ? '?' : '&') + ('diy=yes');
} else {
window.location.href = ((window.location.href + '').replace(/[\?\&]diy=yes/g, '').split('#')[0] + ( window.location.search && window.location.search.indexOf('?diy=yes') < 0 ? '&diy=yes' : '?diy=yes'));
}
}
if(DYNAMICURL) {
window.location.href = SITEURL+DYNAMICURL + (DYNAMICURL.indexOf('?') < 0 ? '?' : '&') + ('diy=yes');
} else {
window.location.href = ((window.location.href + '').replace(/[\?\&]diy=yes/g, '').split('#')[0] + ( window.location.search && window.location.search.indexOf('?diy=yes') < 0 ? '&diy=yes' : '?diy=yes'));
}
}
5、将找到的代码改为如下:
function openDiy(){
window.location.href = ((window.location.href + '').replace(/[\?\&]diy=yes/g, '').split('#')[0] + ( window.location.search && window.location.search.indexOf('?diy=yes') < 0 ? '&diy=yes' : '?diy=yes'));
}
window.location.href = ((window.location.href + '').replace(/[\?\&]diy=yes/g, '').split('#')[0] + ( window.location.search && window.location.search.indexOf('?diy=yes') < 0 ? '&diy=yes' : '?diy=yes'));
}
6、修改完成之后保存,使用FTP上传覆盖对应的原文件,之后回到后台更新缓存即可。最后进入网站首页,查看修改过后的效果。
解决DZ模板制作时TAB切换无反应的方法就是用自己的代码结合目标网站的样式来替换。
第一步:修改TAB切换按钮。使用以下html代码代替(文字可以自己替换):
<ul>
<li id="two1" onMouseOver="setTab(1)" class="on1">幼教</li>
<li id="two2" onMouseOver="setTab(2)">小学</li>
<li id="two3" onMouseOver="setTab(3)">初中</li>
<li id="two4" onMouseOver="setTab(4)">高中</li>
<li id="two5" onMouseOver="setTab(5)">大学</li>
</ul>
<li id="two1" onMouseOver="setTab(1)" class="on1">幼教</li>
<li id="two2" onMouseOver="setTab(2)">小学</li>
<li id="two3" onMouseOver="setTab(3)">初中</li>
<li id="two4" onMouseOver="setTab(4)">高中</li>
<li id="two5" onMouseOver="setTab(5)">大学</li>
</ul>
第二步:将以下的JS代码放在以上的HTML代码的下面。
<script language="javascript">
<!--
function setTab(su){
for(i=1;i<=5;i++){
var menu=document.getElementById('two'+i);
menu.className = i==su?"on1":""; //三维运算来判断当前I是不是与SU相等,然后取值
var con=document.getElementById("con_"+i);
con.style.display = i==su?"block":"none";
}
}
//-->
</script>
<!--
function setTab(su){
for(i=1;i<=5;i++){
var menu=document.getElementById('two'+i);
menu.className = i==su?"on1":""; //三维运算来判断当前I是不是与SU相等,然后取值
var con=document.getElementById("con_"+i);
con.style.display = i==su?"block":"none";
}
}
//-->
</script>
第三步:将内容版块使用以下的DZ代码替换。并且id="con_1" 需要不断的增加。如id="con_2",id="con_3"……
<dl id="con_1" style="display: block;">
[loop]
<div class="fl phshuzi">{currentorder}</div><div class="phsz_r"><a href="{url}" title="{title}" target="_blank">{title}</a></div>
[/loop]
</dl>
[loop]
<div class="fl phshuzi">{currentorder}</div><div class="phsz_r"><a href="{url}" title="{title}" target="_blank">{title}</a></div>
[/loop]
</dl>
第四步:由于不同网站所使用的类名不一样,以上的代码需要结合自己的网站的类名进行修改,以达到自己需要的效果。