2012-12-28 112 views
0

下面的圖片元素位於AJAX腳本中。這個圖像是隱藏的,只有在ajax被觸發後纔會生成,所以當我使用JQuery來顯示它時,它不起作用,因爲元素還不存在。如何顯示使用AJAX動態生成的隱藏元素?

有一個布爾變量叫isTouchScreen。我試圖展示這個元素,如果isTouchScreen的值是true

我是新來的Javascript和我真的很難顯示隱藏的元素,因爲它是動態生成的。有人可以幫我解決這個問題嗎?提前謝謝了。

我的嘗試:

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

正在使用AJAX動態生成的圖像元素:

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

你爲什麼不把顯示在AJAX回調的圖像的代碼爲好,圖像已被添加到DOM後? – elclanrs

+0

@elclanrs!就像我說我是AJAX/Javascript的新手謝謝!這工作! – AnchovyLegend

+0

@elclanrs你應該發佈你的答案作爲答案,好的一個。 – buruzaemon

回答

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(); 
    } 
    } 
}) 
0

我所遇到過類似的問題,我通過之前引入一個短暫的延遲解決試圖在被動態引入DOM的元素上調用一個方法。

也許這樣的事情會有所幫助:

if (isTouchScreen===true) { 
    setTimeout(function() { 
     $('.add-item').show(); 
    }, 500); 
} 
其中 500值以毫秒爲單位

有關更多詳細信息,請參閱window.setTimeout

+0

感謝您的回覆。這對我不起作用。這只是延遲了方法,並沒有幫助與ajax同步。 – AnchovyLegend