-1

我正在尝试更新某人使用 Smarty 创建的网站。该页面是一个会员目录,当您点击会员姓名时,会显示会员的详细信息。但是,创建页面的人使用内联onClick事件来实现这一点。有几百个成员,似乎有很多代码要重复:

<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 的理解不够好,无法弄清楚。任何提示(或彻底的解决方案)?

谢谢,斯科特

4

1 回答 1

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});">
于 2012-04-20T21:51:53.650 回答