0

下面的图像元素位于 AJAX 脚本中。这个图像是隐藏的,只有在触发 ajax 后才会生成,所以当我使用 JQuery 显示它时,它不起作用,因为元素还不存在。

有一个名为 的布尔变量isTouchScreen。我试图展示这个元素,如果isTouchScreen值为true.

我是 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 回答