调用引用的多个函数(theID)

时间:2012-08-01 19:54:36

标签: javascript html css

所以,我是HTML的初学者,并且想知道是否可以做我在下面尝试做的事情。它崩溃了,但我不确定唯一的原因是我的语法,还是根本不可能。

功能声明:              

<!-- Copyright 2005, Sandeep Gangadharan -->
<!-- For more free scripts go to http://www.sivamdesign.com/scripts/ -->

if (document.getElementById) {
document.writeln('<style type="text/css"><!--')
document.writeln('.texter {display:none} @media print {.texter {display:block;}}')
document.writeln('//--></style>') }

function close(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" } }

function open(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" }
else { document.getElementById(theID).style.display = "block" } }

// -->

</script>
</head>

使用该功能:

<table>
<tbody>
<tr>
<td colspan="2" rowspan="0">
<div>•&nbsp;<a href="/tallwalls/" target="_blank"><b>Tall Walls Sizer</b></a></div>
<p onClick="open('a4'), close('a1','a2','a3')" style="cursor:hand; cursor:pointer">       
<span style="color: #808080;">[Click here for more information]</span></p>
</td>
</tr>
<tr id="a4" class="texter">
<td style="padding:0px;width:210px;"><a href="/tallwalls/" target="_blank" title="Tall Walls Sizer"><img src="/images/logos/tallWALLS.gif" alt="" width="206" height="41"/></a></td>
<td>
<div>DESCRIPTION</div>
</td>
</tr>
</tbody>
</table>

主要是 onClick =“open('a4'),close('a1','a2','a3')”是我不确定这是否是正确的语法。< / p>


编辑:忘记提及其他ID确实存在。它们由相同的模式x4

组成

提前致谢,

SirKaydian

3 个答案:

答案 0 :(得分:2)

Javascript行结束;所以你需要先使用open('a4');

此外,您只为一个参数定义了close(),因此您需要将close('a1','a2','a3')拆分为close('a1'); close('a2'); close('a3');

如果您是HTML新手,我建议您阅读一些关于jQuery的内容。它的hide()和show()方法将使你想要做的事情变得非常简单。

答案 1 :(得分:1)

试试这个 - 您需要使用分号来分隔函数调用。请参阅related SO post regarding usage of semicolons

<p onClick="open('a4');close('a1');close('a2');close('a3'); return false;"/>

答案 2 :(得分:1)

让我们考虑你的方法关闭(theID):

function close(theID) {
if (document.getElementById(theID).style.display == "block") { document.getElementById(theID).style.display = "none" } }

此函数只接受一个参数,并且您尝试在多个参数上应用close。在这种情况下,代码看起来像

function close(){
   if(arguments.length > 0 ){
     for(var i=0; i<arguments.length; i++){
        closeMe(arguments[i]);
     }
   }
}

function closeMe(id){
 if (document.getElementById(theID).style.display == "block") {
    document.getElementById(theID).style.display = "none" 
 } 
}

同样是你的开放功能。

您的onClick处理程序存在严重问题

onClick =“open('a4'),close('a1','a2','a3')”

应该是

onClick ="open('a4'); close('a1', 'a2', 'a3');"