2012-04-18 118 views
-1

我在尝试更新某人使用Smarty创建的网站。该页面是一个成员目录,其中当你点击一个成员的名字时,该成员的详细信息就会显示出来。但是,创建页面的人员使用内联onClick事件来实现此目的。有几百件,但是好像很多的代码重复:JavaScript中的Smarty变量

<a href="#" class="expand" 
onClick="document.getElementById('detailsbox-{$member.member_id}').innerHTML = 
document.getElementById('details_'+{$member.member_id}).innerHTML; 
document.getElementById('divStayTopLeft-{$member.member_id}').style.display='block'; 
document.getElementById('summary-{$member.member_id}').style.display='none';return false; 
"> 

我试图拖放到一个函数,调用与onClick,但当然{member_id}只返回一个数字时,页面输出。因此,所有链接仅为该会员ID打开和关闭。

我想我需要将Smarty变量更改为JavaScript变量,然后让onClick事件使用正确的成员ID设置JavaScript变量,但我对JavaScript的理解不够清楚。任何提示(或直接解决方案)?

感谢, 斯科特

+0

以供将来参考,可有人妄自猜测,为什么我的问题是downvoted? – sharcupine 2012-04-27 04:53:49

回答

1

你可能会希望把javascript函数为对象或其他结构把它弄出来的全局命名空间,并采取事件绑定了标记如果可能的话,但我将留下那些作为家庭作业问题。

的javascript:

function foo(member_id) { 
    document.getElementById('detailsbox-' + member_id).innerHTML = 
     document.getElementById('details_' + member_id).innerHTML; 
    document.getElementById('divStayTopLeft-' + member_id).style.display = 'block'; 
    document.getElementById('summary-' + member_id).style.display = 'none'; 
    return false; 
} 

HTML/TPL:

<a href="#" class="expand" onClick="return foo({$member.member_id});"> 
+0

谢谢。目前这个问题已经被推到了后台,所以我还没有机会尝试你的解决方案。但是当我能够回到它时,我会投票。再次感谢! – sharcupine 2012-04-27 04:51:11

+0

我终于回到了它。它完美的作品。谢谢。 – sharcupine 2012-05-14 18:51:29