我正在尝试使用单击的图像在图像单击时显示模式,但它不起作用。
用户单击图像后,我正在插入模态的内容
$("#imageModal").html(modalHtml);
$('#imageModal').modal('show');
此代码现在可能可以工作,因为我收到错误:未定义 showModal 但相同的代码正在我的网站上运行。请帮助查找问题。
我正在尝试使用单击的图像在图像单击时显示模式,但它不起作用。
用户单击图像后,我正在插入模态的内容
$("#imageModal").html(modalHtml);
$('#imageModal').modal('show');
此代码现在可能可以工作,因为我收到错误:未定义 showModal 但相同的代码正在我的网站上运行。请帮助查找问题。
首先在您的 html 正文的最顶部....直接在<body>
标记之后,在任何内容之前。
把你的模态......没有任何img,只是一个空的身体......
<div id="imageModal" class="modal hide fade in">
<div class="modal-header"><a class="close" data-dismiss="modal">x</a>
<h3>Select the area</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<a href="#" class="btn btn-success">Men Topwear</a>
<a href="#" class="btn btn-success">Men Bottowear</a>
<a href="#" class="btn btn-success">Women Topwear</a>
<a href="#" class="btn btn-success">Women Bottomwear</a><br>
<a href="#" class="btn" data-dismiss="modal">Close</a>
</div>
然后稍后在您的文档中,无论您想要图像...只需将它们包装在<a>
标签中,并将模式框的名称应用于 href,并应用 data-toggle 属性...data-toggle="modal"
<a class='galleryImg' href="#imageModal" data-toggle="modal">
<img src="http://media.santabanta.com/gallery/global%20celebrities(f)/shakira/shakira-28-m.jpg" />
</a>
<a class='galleryImg' href="#imageModal" data-toggle="modal">
<img src="http://media.santabanta.com/gal/event/ramaiya-vastavaiya-sp" />
</a>
然后在您的 Jquery 中...只需找到所有带有 class 的链接.galleryImg
,或者您想识别它们,然后应用单击处理程序...将图像传递给模态。
$('a.galleryImg').click(function (e) {
e.preventDefault();
var img = $(this).html();
$('.modal-body').html(img);
});
更新
查看您粘贴的代码后......您不能那样做,因为您要在创建的项目上输出两个点击处理程序。你需要这样做......
function testAPI(){
listOfPage = ["http://media.santabanta.com/gallery/global%20celebrities(f)/shakira/shakira-28-m.jpg", "http://media.santabanta.com/gal/event/ramaiya-vastavaiya-special-screening/ramaiya-vastavaiya-special-screening-32.jpg"]
for (var i=0;i<listOfPage.length;i++){
$("#imgbox").append('<a class="galleryImg" href="#imageModal" data-toggle="modal"><img src="'+listOfPage[i]+ '"></a>');
}
}
然后将这个单独放在循环之外....
$('body').on('click', 'a.galleryImg', function (e) {
e.preventDefault();
var img = $(this).html();
$('.modal-body').html(img);
});
因为由于您要附加项目,所以它们是动态创建的,因此您需要使用on
而不是click
但是您还需要将其全部包装在 $(document).ready(function()
...中
$(document).ready(function(){
//Facebook login function run/loop
function testAPI(){
listOfPage = ["http://media.santabanta.com/gallery/global%20celebrities(f)/shakira/shakira-28-m.jpg", "http://media.santabanta.com/gal/event/ramaiya-vastavaiya-special-screening/ramaiya-vastavaiya-special-screening-32.jpg"]
for (var i=0;i<listOfPage.length;i++){
$("#imgbox").append('<a class="galleryImg" href="#imageModal" data-toggle="modal"><img src="'+listOfPage[i]+ '"></a>');
}
}
//Apply click handler to dynamic links...
$('body').on('click', 'a.galleryImg', function (e) {
e.preventDefault();
var img = $(this).html();
$('.modal-body').html(img);
});
});