0

次のコード (JavaScript/jQuery を使用) では、自分のサイトでスライドショー/プレビュー スライダー タイプのウィジェットを制御しています。それはうまく動作します。現在使用中のスライドを強調表示する小さなインジケータ ボックスがあります。これらも機能します。しかし、何らかの理由で、それぞれの間に一重引用符が表示されます。以下で大文字でコメントした行までたどることができました。表示されている最後の SINGLE 引用符が原因のようですが、それを削除するとコードが壊れます。なぜこの一重引用符が必要なのですか? 何が合っているかはわかりません。

for(var i = -1; i < numberOfSlides; i++)
    {
        $('#locationBar').append("<span class='locator' id='locator_" + i + "'><a></a></span>'");
//THE LAST SINGLE QUOTE HERE IS WHAT IS CAUSING THE QUOTES BETWEEN THE SLIDE INDICATORS. GETTING RID OF IT BREAKS IT THOUGH. INVESTIGATE.
        if(i < 0)
        {
            $('#locator_' + i).css('visibility','hidden');
            continue;
        }
        $('#locator_' + i).bind('click',function(){window.location=$('#link_' + currentPosition).attr('href');});
        $('#locator_' + i).hover(function(){

            var newPosition = 0;
            for(var j = 0; j < numberOfSlides; j++)
            {
                if($(this).attr('id') == "locator_" + j)
                {
                    newPosition = j;
                }
            }
            if(currentPosition==newPosition)
                return;

            jump(currentPosition,newPosition);


            currentPosition=newPosition;

            clearTimeout(delayTimer);
            delayScroll();
        });
    }
4

2 に答える 2

0

文字列をエスケープするだけです。
追加の見積もりを取得することは理にかなっています。
あなたの行の終わりは

"'><a></a></span>'"

したがって、二重引用符内の引用符を取得します。

エスケープされた例:

 $('#locationBar').append('<span class=\'locator\' id=\'locator_' + i + '\'><a></a></span>');
于 2012-04-19T18:59:51.817 に答える
0

編集済み

同じセンテンス内で単一引用符と二重引用符を混在させると、問題が発生する場合があります。

$('#locationBar').append('<span class="locator" id="locator_' + i + '"><a></a></span>');

user1277499の回答もこの問題に取り組むはずですが、うまくいきませんか?

于 2012-04-19T18:30:26.720 に答える