1

最初の if 条件が満たされると、その中の if 条件は常に true を返します。最初のif条件が満たされるたびに同じdivを追加するので、私はこれを知っています。私は JS の知識が限られています。私が見逃しているのは明らかなことかもしれません。ただし、2番目の if ステートメントが満たされて実行された後、その条件が再び満たされるべきではないように思えます。誰がこれを引き起こしているのか考えていますか? どんな助けでも大歓迎です。

if (portfolioImg.attr('src') == 'image.png') 
{
    if (zoomImgHolder.width() != '300px') 
    {
        zoomImgHolder.append('<div id="myContent"></div>');
        zoomImgHolder.css(
        {
            'width' : '300px',
            'height' : '120px'
        });

        swfobject.embedSWF(
            "swfobject/test.swf", 
            "myContent", 
            "300", 
            "120", 
            "9.0.0", 
            "expressInstall.swf");

        zoomImgHolder.vAlign();
    } 
    else 
    {
        $('#myContent').css(
        {
            'visibilty' : 'visible'
        });
    }
}
4

3 に答える 3

6

ドキュメントで説明されているように:

.css(width)との違い.width()は、後者は単位のないピクセル値 ( など400) を返すのに対し、前者は単位をそのままの値 ( など) を返すことです400px

.width()は常に数値を返し、等しく<any number>なることはありません300px

于 2013-03-14T23:37:13.697 に答える
2

jQuery の width() 関数は整数値を返します。したがって、文字列「300px」と等しくなることはありません。

コードを少し変更するだけです。

if (zoomImgHolder.width() != 300)
于 2013-03-14T23:36:53.937 に答える
2

.width()文字列ではなく数値を返します。

> 300 == '300px'
false

それを比較して300ください:

if (zoomImgHolder.width() != 300) {
于 2013-03-14T23:36:56.077 に答える