欢迎各位兄弟 发布技术文章
这里的技术是共享的
 
  正确答案 
写在外部的jS中,var abc=<{$row_array}>是无法被smarty解析为正确的值的,就会造成JS语法错误。如果需要使用JS变量,则必须将变量部分写在模板文件内,这样才能被解析为正确的值
来自  http://zhidao.baidu.com/link?url=0FDcqmVG9bgD7ECVPvu8YnLi3FDjVrKnSFi1B0P52YQkoTFtuSjy91IqC31Zvfv51RgvIhG4BsOcBfBLINM38_
<ol>
            {section name=s loop=$arr}
            	<li id="{$arr[s].id}"><a href='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li>
            {/section}
  </ol>
这个是一个用smarty模板引擎下的一个模板文件,现在我要用jquery获取<li id="{$arr[s].id}">的id值来做一些效果怎么弄?求大神指教!
| 1 2 3 4 5 6 7 8 | <ol>  {section name=s loop=$arr}  <script>    var id = {$arr[s].id};  </script>    <liid="{$arr[s].id}"><ahref='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li>  {/section}</ol> | 
懂了么?
这样的话,我的js页面是链接进来的,这样可以吗?
刚才理解错你问题了
如果你是想在外部的js中控制模版生成的dom元素的话,就很简单了
只要写在document.ready中就可以了
把jquery代码写在
$(function() {
})
中间就能访问到的
假如这个是js文件,我模板那样写后怎么获得 var id的值放在下面的选择器中?$(document).ready(function(){$("#id").mouseover(function(){$(this).hide();});});
如果是这样的呢?
这下理解你问题了。。
这其实算是个设计结构的问题吧
如果你想设置没有具体指向,但是普遍适用的结构,可以写在外部的js中
例如,要给这些li都添加一些效果,你可以在外部js中这么做
| 1 2 3 4 | $("ol > li").on("mouseover",function() {    $(this).hide();    //do otherthing;}); | 
如果是有例外的情况,需要根据具体元素的具体参数进行具体操作的话
| 1 |  <liid="{$arr[s].id}"onMouseover="doSomething({$arr[s].id})"><ahref='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li> | 
| 1 2 3 4 | functiondoSomething(id) {    $("#"+id).hide();    //do otherthing;} | 
OK,明白了,直接传值过去,多谢了!!
假如这个是js文件,我模板那样写后怎么获得 var id的值放在下面的选择器中?
$(document).ready(function(){
$("#id").mouseover(function(){
$(this).hide();
});
});
$('#id'+<{$str}>).click({});
没有反应。
那就用动态绑定
$("ol li").mouseover(function(){
     $(this).hide();
});
这样的话如果是导航栏,里面的效果都一起变了。如果要做其中一个怎么办?
换成这个 $("ol li").each()