0

これを使用してアバター リンクを表示できるフォーラム ソフトウェアを使用しています: {$mybb->user['avatar']}

アバターが設定されていない場合、何も返されません。アバターが設定されていない場合に画像を表示したい。

現在、HTML は次のように設定されています。

    <div id="avatar"><div style="background: url({$mybb->user['avatar']}) center center no-repeat;"></div></div>

外側の div は空で、バックグラウンドにあります。これは、デフォルトのアバターが表示されるように、クラス (.defaultavatar) も追加しているものです。

内側の div は、アバターが表示されているものです。アバターがアップロード/選択されていない場合、空白で表示されます。

これは私が使用しているJavaScriptです:

    var myavatar = {$mybb->user['avatar']};

    if(typeof(myavatar) = null){ 
        jQuery('#avatar').addClass('defaultavatar');
    }

アバター URL が空の場合、クラス defaultavatar を最初の div に追加します。

どうすればこれを行うことができますか(動作させることができますか)?

どうもありがとう、ジャック・クラーク

4

3 に答える 3

2

あなたのif状態では、構文に問題があります。単一の等しいは割り当てです。

少なくともこれを変更する

if(typeof(myavatar) = null)   

if (typeof myavatar == 'undefined')
于 2012-04-11T01:54:50.710 に答える
1

何が返されるかに応じて{$mybb->user['avatar']、次のことを行うだけで十分な場合があります。

if (myavatar) {
  // do stuff
}  
于 2012-04-11T02:26:34.690 に答える
1

undefinedjavascriptには2つの意味があります。それらの正確な名前が何であるかはわかりません。私の例では、それらを未定義および本当に未定義と呼びます。

レギュラーundefinedは、宣言されているが初期化されていないものから値を取得しようとしたときに取得するものです。言い換えれば、通訳はあなたが話していることを知っていますが、そのことはまだ価値がありません。

単純なifステートメントを使用して、変数をブール値にキャストし、それがこのタイプであるかどうかを確認できますundefined''このキャストでは、空の文字列と数値もキャストされることに注意して0くださいfalse。空の文字列と数値も考慮する必要がある場合は、代わりに条件に0使用してください。myDeclaredVariable === undefined

if (myDeclaredVariable) {
    // myDeclaredVariable is initialized with a "truthy" value
} else {
    // myDeclaredVariable is either uninitialized or has a "falsey" value
}

REALLYundefinedは、確率変数を宣言せずにアクセスしようとしたときに得られるものです。インタプリタはあなたが何について話しているのかわからないので、何かをしようとするとjavascript例外がスローされます。この状況を処理するには、typeof演算子を使用する必要があります。

if (typeof myPossiblyDeclaredVariable !== 'undefined') {
    // myPossiblyDeclaredVariable has been declared
} else {
    // myPossiblyDeclaredVariable has not been declared yet
}

あなたはここで関連するStackOverflowの質問を見ることができます。

于 2012-04-11T03:05:19.287 に答える