新手求助!!!啊!!急啊!!!

#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.html
http://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

    #6 jake

    爃少 发表于 2012-8-21 00:20
    谢谢jake大哥的详细解答.今天我自己想了一个办法给解决了,也和你的说的做法差不多,
    首先在控制器里写上 ...
    是include是功能,手册在本站的导航里面

    http://www.speedphp.com/smarty/language.function.include.html

    2012-08-21 08:33:47