0

noobの質問をお詫びしますが、これに対する解決策を見つけることができません。

トグルをクリックするとULになるリンクがあります。

$("#pastShows").click(function () { $(".shows").toggle("slow"); });</ p>

<h3 id="pastShows"><a href="javascript:void(0)">Past</a></h3>
<div class="shows">
  <ul>
    <li>Show 1</li>
    <li>Show 2</li>
    <li>Show 3</li>
    <li>Show 4</li>
  </ul>
</div>​

このフィドラーでは完璧に機能します。http://jsfiddle.net/Chadimoglou/NG8Dj/2/

しかし、ここで実装すると機能しませんhttp://www.kiirstinmarilyn.com/#shows

助けてくれてありがとう。

4

2 に答える 2

3

window.onloadを削除し、初期化コードをdocument.readyに配置してみてください。

これを置き換えます:

/*----Toggle past shows----*/
window.onload=function(){
    $("#pastShows").click(function () {
        $(".shows").toggle("slow");
        alert("It Worked");
    });
}

これとともに:

$(function()
{
    $("#pastShows").click(function () {
      $(".shows").toggle("slow");
      alert("It Worked");
    });
}
于 2012-11-20T20:22:04.093 に答える
1

わかりました。ここでの問題は、またはwindow.onloadの代わりに、を使用していることです。jQueryのメソッドは、DOMの準備が整うとすぐに呼び出されます(ブラウザーがHTMLを解析し、DOMツリーを構築したことを意味します)。Webページに大きな画像がある場合、画像が完全に読み込まれるのを待つことはありません。したがって、メソッドの前に呼び出すことができます。Webページには、次の順序で呼び出される複数のメソッドを含めることができます。一方、メソッドは、ページの画像と関連するすべてのリソースが完全に読み込まれたときに呼び出されます。Webページに大きなサイズの画像があるとすると、すべての画像がページに完全に読み込まれなくなるまで、メソッドは呼び出されません。document.ready()$(function() {}document.ready()window.onloaddocument.ready()window.onloadwindow.onload

したがって、コードを置き換えるだけです。

window.onload=function(){
    $("#pastShows").click(function () {
        $(".shows").toggle("slow");
    });
}

と:

$(function()
{
    $("#pastShows").click(function () {
      $(".shows").toggle("slow");
    });
}

お役に立てれば!

于 2012-11-20T20:34:23.487 に答える