下面的图像元素位于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">
答案 0 :(得分: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();
}
}
})
答案 1 :(得分:0)
我在过去遇到过类似的问题,我在尝试调用动态引入DOM的元素上的方法之前引入了一个短暂的延迟。
也许这样的事情会有所帮助:
if (isTouchScreen===true) {
setTimeout(function() {
$('.add-item').show();
}, 500);
}
其中500
值以毫秒为单位。
有关详细信息,请参阅window.setTimeout。