【发布时间】:2015-09-11 03:41:23
【问题描述】:
我正在努力将 Ajax 发布请求与任何灯箱放在一起。 概念是单击链接,将发布请求发送到服务器,其中包含图像标识符和某种用户验证信息的数据。 生成的 jpg 图像应显示在响应式开源灯箱中。 尝试了 lightboxj.js 和魔术盒,但没有成功。 可能吗? 有什么例子吗?谢谢
更新 1
我现在包含了一些完成一半工作的代码:它将我需要的图像加载到特定的 div (#imageHidden) 中(因此覆盖了“POST”请求)
$("#testa").bind('click', function(e){
e.stopImmediatePropagation();
e.preventDefault();
$.ajax({
type: "POST",
data : {
username: username,
password: password,
img: img
},
url: php_url,
success: function(data){ //read the value and save in settings
if (data.length>0) {
$('#hiddenImage').html('<img src="data:image/jpeg;base64,' + data + '" />');
// $.colorbox({href:"#hiddenImage"});
}
});
然后我会将这个 div 设置为隐藏以避免在页面上显示它(我希望它只显示在灯箱中)...
现在的问题是如何将其显示到灯箱中。有什么建议吗?
由于某种原因,颜色框在我的情况下不起作用
谢谢
更新 2
好的,一些排序:
-
colorbox 需要属性 inline 为真才能显示页面内容:
$.colorbox({inline:true, href:"#hiddenImage"}); -
我已将#hiddenImage 放入#hiddenDiv:
#hiddenDiv { display: none; }
更新 3
好的,我认为它现在可以工作了。 我使用 colorbox 作为我的灯箱。 请注意,#hiddenImage 是要显示的图像,它将被加载到不可见的 (display:none) #hiddenDiv DIV 中。
对于所有感兴趣的人,最终代码是:
$("#testa").bind('click', function(e){
e.stopImmediatePropagation();
e.preventDefault();
$.ajax({
type: "POST",
data : {
username: username,
password: password,
img: img
},
url: php_url,
success: function(data){ //read the value and save in settings
if (data.length>0) {
$('#hiddenImage').html('<img src="data:image/jpeg;base64,' + data + '" />');
$.colorbox({inline:true, href:"#hiddenImage"});
}
});
});
唯一剩下的问题似乎有时 lightbos 是空的,但如果我设置一个计时器在调用 colorbox 之前等待十分之几秒,这个问题就会得到解决。
有没有办法保证代码
$('#hiddenImage').html('<img src="data:image/jpeg;base64,' + data + '" />');
在调用 colorbox 之前完全执行(除了丑陋的 settimeout 选项)?
【问题讨论】:
-
你能提供代码(小提琴)和更多关于你的问题的细节吗?
标签: javascript jquery html ajax colorbox