0

私は次のjsコードを持っています:

<style>
<!--
body
{
font-family: "century schoolbook", serif;
font-size: 20px;
}
.hidden
{
display: none;
color: #000;
background: #FFFFFF;
}
.unhide
{
display: block;
color: #000;
}
a.unhide
{
text-decoration: none;
}
a.unhide:hover
{
text-decoration: underline;
}
.unhide:hover
{
background: #FFE5B4;
padding: 3px 8px;
display: table-row;
transition: background .25s ease-in-out;
-moz-transition: background .25s ease-in-out;
-webkit-transition: background .25s ease-in-out;
}
-->
</style>
<script type="text/javascript">
function unhide(divID) {
var item = document.getElementById(divID);
if (item) {
item.className = (item.className == 'hidden') ? 'unhide' : 'hidden';
}
}
</script>

...
<div class="conBoxcities">
<class id="info">
<a href="javascript:unhide('cityname');" class="unhide">
This is really a js link with a city name. Clicking brings down information about 
that city.
</a>
</class>

<class id="info">
<div id="cityname" class="hidden">
This is where the content of the above link appears. It is just an info blurb,    
basically.
This js script works here. On the other page it does not. I believe I messed up 
somewhere in my classes...please help
</div>
</class>
</div> 

上記のコードは、「裸の」php ページで完全に機能します。

メインページに組み込むと、js リンクが機能しなくなります。私は私の取り決めに間違いがあるかもしれないと信じています (確かに、クラスと ID はまだ私を混乱させます)。

これはリンクが表示されるページですが、機能しません。

助けてください...

4

1 に答える 1

2

問題は、「ライブ」ページunhideで、次のコードで関数を再定義したことです。

function unhide(divID) {
    var item = document.getElementsByClassName(divID)[0];
    console.log(item);
    console.log(item.className ==  divID + ' hide');
    if (item) {
    item.className = (item.className ==  divID + ' hide') ? divID + ' unhide' : divID + ' hide';
    }
}

削除すると、そのコードがコメントアウトされ、すべてが期待どおりに機能します。

于 2013-09-21T16:11:42.663 に答える