#1 爃少
我最近用sp框架开发遇到了个问题.想请教一下.
就是一个页面,我把头部导航栏目的部分分了出来,这样做的话,就出问题了。
导航栏目我用js来设定好点击当前栏目改变样式的,这样include以后,这个js就不管用了,
每次点击其他栏目,会有一瞬间的把样式加到该栏目,但是马上又把样式加回了默认的首页上面。
为什么会这样的呢。。。真想不明白。。。
哪位高人可以指点一下。。。T_T
2012-08-19 01:24:33
#2 jake
“注意要把问题说清楚,最好包括:代码、错误提示、截图等。”
真心看不懂你说的~~~最好先不要把JS和PHP混到一起做,毕竟是两回事。
或许有可能这两篇手册能帮到你
http://www.speedphp.com/thread-3723-1-1.htmlhttp://www.speedphp.com/thread-3745-1-1.html
2012-08-19 08:27:58
#3 爃少
jake 发表于 2012-8-19 08:27
“注意要把问题说清楚,最好包括:代码、错误提示、截图等。”
真心看不懂你说的~~~最好先不要把JS和PHP混 ...
jake哥,可能我说的不是很清楚,我没有把js和php搞混。我附上截图吧.
就是有这样一个栏目.默认上面的首页会有一个红色字体的样式。我加了一段js.
目的是当我点击其他栏目的时候,当前栏目的字体会变成红色。
可是现在没有效果,我已经找到原因了。
我的a标签是这样的:<{spUrl c=main a=about_us}>">公司简介
当我点击
公司简介 这个栏目,他就会转向a=about_us的页面,然后栏目样式就会变回默认的。
如果我把 改成
然后再次点击公司简介 ,就有效果了.
我分析了一下,原因是当我点击<{spUrl c=main a=about_us}> 这个的时候,等同于刷新页面,就把样式给还原了。这样的话我的js不就等于虚设了!?我想请教一下要如何解决?T_T我想不出什么办法。。补充一下:网页的结构是 把栏目 给割出去,然后include进来得.
难道只能用 iframe 来防止头部的刷新来解决这个问题?
2012-08-19 22:11:58
#4 jake
你说的是页面导航部分。一般常规的做法如下:
主页模板(用include的方法包含头部导航)
<{include file="header.html" current="home"}>
下面的具体模板内容
关于我们模板
<{include file="header.html" current="about"}>
下面的具体模板内容
头部模板header.html
class="current"<{/if}>>主页
class="current"<{/if}>>关于
原理:
1. 在各模板里面,通过include的传值语法,把$current变量赋值并传递到header.html里面。
2. header.html里面根据当前的$current值,为当前的导航链接加上class="current",这样就可以区分当前链接了。
当然标识当前链接还可以有很多方式,不过class="current" 这种最常见,至于你说的js方法,就没见过了,这个地方是用不上JS吧。
2012-08-20 08:37:22
#5 爃少
jake 发表于 2012-8-20 08:37
你说的是页面导航部分。一般常规的做法如下:
主页模板(用include的方法包含头部导航)关于我们模板头部 ...
谢谢jake大哥的详细解答.今天我自己想了一个办法给解决了,也和你的说的做法差不多,
首先在控制器里写上
$this->channel = $this->spArgs("channel","1");
然后在模板上进行判断
">首页看了你的方法,感觉你那方法更简洁一些,但是有个地方不太懂,<{include file="header.html" current="home"}>
模板里面用include, 后面可以直接给一个变量赋值的吗?这个是smarty的知识还是...?有木有相关的文档给小弟我恶补一下...
2012-08-21 00:20:39