0

以下のイメージ要素は、AJAX スクリプトにあります。この画像は非表示であり、ajax がトリガーされた後にのみ生成されるため、JQuery を使用して表示すると、要素がまだ存在しないため機能しません。

というブール変数がありますisTouchScreen。この要素を表示しようとしています。 IF の値はisTouchScreenistrueです。

私はJavascriptが初めてで、動的に生成されるため、非表示の要素を表示するのに非常に苦労しています。誰かがこれを解決するのを手伝ってもらえますか? よろしくお願いします。

私が試したこと:

if(isTouchScreen===true){
   $('.add-item').show();
}

AJAX で動的に生成される画像要素:

<img class="add-item" style="display:none" src="add-item.png">
4

2 に答える 2

3

AJAX コールバック内に条件を入れてみてください。

$.ajax({
  ...
  success: function() { // This runs if the request was succesful
    var $img = $('<img class="add-item" src="add-item.png">');
    $('yourContainer').append( $img.hide() ); // append and hide by default
    if ( isTouchScreen ) { // true is truthy, no need to compare
      $('.add-item').hide();
    }
  }
})
于 2012-12-28T02:12:31.880 に答える
0

私は過去に同様の問題に遭遇しましたが、DOMに動的に導入されている要素でメソッドを呼び出そうとする前に、短い遅延を導入することで解決しました。

おそらく、このようなものが役立つでしょう:

if (isTouchScreen===true) {
    setTimeout(function() {
        $('.add-item').show();
    }, 500);
}

ここで、500値はミリ秒単位で測定されます。

詳細については、 window.setTimeoutを参照してください。

于 2012-12-28T02:07:17.003 に答える