だから私はリンクのonclick()イベントで呼び出されるJsにこの関数を持っています。
HTMLは次のとおりです。
<li class="collapsed">
<span>
<a href="#!" onclick="expand(this)">Directions</a>
</span>
<p>ajajgajajys agajgjgtajgtdja ajdtajtjate ajgdjagjd ajt</p>
</li>
そして、ここにJavascriptがあります:
function expand(myElem)
{
if (myElem.parentNode.parentNode.style.height<100)
myElem.parentNode.parentNode.style.height="100px";
else
myElem.parentNode.parentNode.style.height="45px";
}
明らかに、コードはリンクが含まれている li 親タグを展開します。元々、li タグはheight:45px;
CSS のように設定されています。それから彼らはに変わり100px
ます。私が抱えている問題は、JavaScriptが2回しか機能しないことです。リンクをクリックして、li を展開できます。次に、それらをクリックして、li を折りたたむことができます。その後、再び働きたくありません。ブラウザのエラーを調べていたところ、次のことがわかりました。
「'高さ' の値を解析中にエラーが発生しました。宣言が削除されました。
インターウェブを何度もトローリングした後、jsにユニット宣言を含めていないためだと思いました。でも私はそうよ!
myElem.parentNode.parentNode.style.height="45px"; ---- as you can see.
****注: 私の解決策* ****
このスレッドに出くわした人のための将来の参考のために、ここに私の解決策があります:
HTML --> 私は最終的に次のようなことをしました:
<span class="heading">
Link1
<span>
<span class="information">
Info about Link1
</span>
<span class="heading">
Link2
<span>
<span class="information">
Info about Link2
</span>
Jquery は非常にシンプルでした。
$(document).ready(function() {
$(".information").hide();
$(".heading").click(function(){
var item = $(this);
item.next().slideToggle(500);
});
});
...非常にシンプルで、魅力的に機能します