0

以下のコードは「mousemove」で正常に動作しますが、ページの読み込み時に画像を表示したいのですが、何も変更していないため、ページの読み込み時に画像が表示されます。どんな助けでも大歓迎です!ありがとうイアン

$(document).ready(function () {

    $("body").mousemove(function () {

    $("li.fsn-level-1").each(function () {

      var imgCount = $(this).children("span").first().children("img").length;

      if (imgCount < 2) {
        $(this).children("span").first().prepend("<img id='imgPlus' src='images/plus.png' style='display:inline' />"); 
        $(this).children("span").first().prepend("<img id='imgMinus' src='images/minus.png' style='display:none' />");

      }

      var closed = $(this).hasClass("closed");
      var open = $(this).hasClass("open");
      var first = !closed && !open;
      if (first) {
        $(this).removeClass("open")
          $(this).removeClass("closed").addClass("closed");
        var sub = $(this).children("ul");
        if (sub.length) {
          sub.hide();
        }

        var plus = $(this).children("span").first().find("img[id='imgPlus']");
        if (plus.length)
          plus.show();

        var minus = $(this).children("span").first().find("img[id='imgMinus']");
        if (minus.length)
          minus.hide();
      }


      $(this).unbind('hover').bind('hover', function () {
        CloseAllSubMenu();
        var closed = $(this).hasClass("closed");
        var open = $(this).hasClass("open");
        var first = !closed && !open;


        if (first || closed) {
          $(this).removeClass("closed");
          $(this).removeClass("open").addClass("open");
          var sub = $(this).children("ul");
          if (sub.length) {
            sub.show();
          }

          var plus = $(this).children("span").first().find("img[id='imgPlus']");
          if (plus.length)
            plus.hide();

          var minus = $(this).children("span").first().find("img[id='imgMinus']");
          if (minus.length)
            minus.show();

        }
        if (open) {

          $(this).removeClass("open")
            $(this).removeClass("closed").addClass("closed");

          var plus = $(this).children("span").first().find("img[id='imgPlus']");
          if (plus.length)
            plus.show();

          var minus = $(this).children("span").first().find("img[id='imgMinus']");
          if (minus.length)
            minus.hide();
        }
      });
    });
4

2 に答える 2

0

あなたがやろうとしていることを正確に理解するのは難しいですが、これは私が見つけたものです:

ここでページの準備ができた後、画像を追加しています:

$(this).children("span").first().prepend("<img id='imgPlus' src='images/plus.png' style='display:inline' />");
$(this).children("span").first().prepend("<img id='imgMinus' src='images/minus.png' style='display:none' />");

これにより、その時点で画像が読み込まれます。つまり、ページの準備が整う (読み込まれる) のを待ってから、画像を追加し、ページが読み込まれた後に画像を強制的に読み込みます。

動的にする必要がある場合は (そのように見えます)、 を呼び出す前に実行してみてください$(document).ready();。そうすれば、それらはドキュメントのロードに含まれます (したがって、その後に発生するすべてのこと.

于 2013-03-26T19:15:41.220 に答える
0

ばかげた質問をすると、page_load で画像をロードする場合は、ページにタグを配置して開始するだけで、画像はドキュメントの一部として既にロードされます。

ドキュメントの準備ができたとき (ページの読み込み後) に画像を読み込みたいが、マウスオーバーでは読み込みたくない場合は、これを削除してください。

$("body").mousemove(function () { }

...あなたのjavascriptのセクションと残りは、mousemove関数に配線されていないため、すぐに起動します。

于 2013-03-26T19:20:33.080 に答える