0

我在弹出窗口的左侧有一个动态生成的缩略图图像,单击图像时我希望该图像显示在右侧。

我正在使用以下代码:

    $.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 在单击任何图像时起作用。怎么办?

谢谢,

4

3 回答 3

1

id="citythumb"必须是唯一的,使用class,喜欢class="citythumb"

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

当您更改id属性时,您也可以替换img.citythumb

于 2012-10-03T08:03:45.807 回答
0

在此处尝试事件委托方法,其中事件与元素祖先相关联..

由于冒泡效果这样做,在这种情况下,点击事件将与图像元素相关联......

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

确保文档中的 id 是唯一的。

所以代替id="citythumb" 声明class="citythumb"

于 2012-10-03T08:05:46.457 回答
0

请将 sliderimage() 函数移到 Ajax 调用之外

 $.ajax({  
 });

 function sliderimage(image){     
   alert("sdf");
   alert(image);
 }
于 2012-10-03T08:10:58.503 回答