2012-10-03 112 views
0

我有一個動態生成的縮略圖圖像在我的彈出窗口的左側,並點擊圖像我希望該圖像顯示在右側。添加onclick事件動態生成元素jquery

我使用下面的代碼:

$.ajax({ 
        type: "POST", 
        url: "/buildyourholiday/placeimages", 
        data: "srcid="+cityid, 
        success: function(data){ 
         var objsrc = jQuery.parseJSON(data); 
         var src=""; 
         $(".photoright").append().empty(); 
         $.each(objsrc, function(index, obsrc){ 
          src += '<ul>'+ 
           '<li><a href="#"><img id="citythumb" onclick="sliderimage(this)" src="/images/city/thumbs/'+obsrc.img_filename+'" width="100" height="100"></a></li>'+ 
           '</ul>'; 
         }); 
         $(".photoright").append(src); 
         function sliderimage(image) 
{ 
    alert("sdf"); 
    alert(image); 
} 
        } 
       }); 

當我螢火蟲它,我得到sliderimage不是一個函數。當我在追加後使用onclick事件時,我只得到第一個圖像,但有多個圖像。我希望onclick能夠點擊任何圖像。如何去做呢?

感謝,

+0

請使用sliderimage的參數,使警報功能,並告訴它是否適用於所有圖像 –

回答

1

id="citythumb"必須是唯一的,使用class,像class="citythumb"

$(".photoright").on('click', 'img', function(e){ 
    e.preventDefault(); // for link 
    alert(this); 
}); 

當你改變id屬性,你也可以用.citythumb

0

嘗試事件委託的方式代替img在這兒,在事件中與元素祖先相關聯。

這樣做的,因爲起泡效果click事件會在這種情況下,相關的圖像元素等等......

$(".photoright").on('click', 'img', function(){ 
    alert(this); 
}); 

確保您的文檔中的ID是唯一的。

所以不是ID = 「citythumb」 的聲明類= 「citythumb」

0

請移動sliderimage()函數調用Ajax之外

$.ajax({ 
}); 

function sliderimage(image){  
    alert("sdf"); 
    alert(image); 
} 
相關問題