0

なぜこれが機能しないのか、私はちょっと立ち往生しています。

アペンドは機能しています。HTMLにすべてのアンカーがありますが、何らかの理由でその配列をjqueryで取得できます。jqueryで追加したからなのかと思い始めています。

これはいくつかの警告を出し続けますが、実際には何も警告するべきではありません

               //$('#swiffy-braces-diagram').html("<img src='/assets/uploads/images/brace-painter.png'/>");
             $('#swiffy-braces-diagram').css('background-image', "url('/assets/uploads/images/brace-painter.png')")
                 .append("<a href='' id='elastic-tie'>")
                 .append("<a href='' id='loop-in-archwire'>")
                 .append("<a href='' id='archwire'>")
                 .append("<a href='' id='bracket'>")
                 .append("<a href='' id='headgear-tube'>")
                 .append("<a href='' id='coil-spring'>")
                 .append("<a href='' id='tie-wire'>")
                 .append("<a href='' id='band'>")
                 .append("<a href='' id='hook'>")
                 .append("<a href='' id='elastic'>")
                 .append("<div id='description'>");
             });

            if( $('#swiffy-braces-diagram a').length == 0){alert('some');}

            $('#swiffy-braces-diagram a').each( function(i){
                $(this).mouseover( function(){
                    $('#swiffy-braces-diagram #description').html( description[i] );
                });
            });
4

2 に答える 2

2

現在、コードに構文エラーが含まれています。あなたが言うとき、append() は機能します。そのコードをイベント コールバック内で実行すると思います (ready など)。

私が正しいときは、これを使用してください:

jQuery(
  function($)
  {
    $('#swiffy-braces-diagram').css('background-image', "url('/assets/uploads/images/brace-painter.png')")
                 .append("<a href='' id='elastic-tie'>")
                 .append("<a href='' id='loop-in-archwire'>")
                 .append("<a href='' id='archwire'>")
                 .append("<a href='' id='bracket'>")
                 .append("<a href='' id='headgear-tube'>")
                 .append("<a href='' id='coil-spring'>")
                 .append("<a href='' id='tie-wire'>")
                 .append("<a href='' id='band'>")
                 .append("<a href='' id='hook'>")
                 .append("<a href='' id='elastic'>")
                 .append("<div id='description'>");

                  // }); <--this has been removed


            if( $('#swiffy-braces-diagram a').length == 0){alert('some');}

            $('#swiffy-braces-diagram a').each( function(i){
                $(this).mouseover( function(){
                    $('#swiffy-braces-diagram #description').html( description[i] );
                });
            });
        });//<--the removed brackets now are here

});append()の後に を削除したことに注意してください 。

それがなければ、ready-function をすぐそこに残して、これらすべての要素を append() する前に残りのスクリプトが実行されます。

于 2012-09-21T23:03:03.597 に答える
1

"<a href='' id='elastic-tie'>"は有効な HTML ではありません。終了</a>タグが必要です。おそらく、リンクにもいくつかのコンテンツが必要です。

さらに、リンクにコンテンツがないため、ページのスペースを占有しないため、マウスオーバー イベントが発生することはありません。

于 2012-09-21T22:58:00.903 に答える