我们的网站上有升级功能。和上传的文件,显示链接,单击用户可以在新窗口中看到他们已上传的文件。

我们还使用divbox http://jquery.phpbasic.com/divbox

我的代码是这样的:

$("#uploader" + queueId).html("
 <div class='cancel'>
  <input class='button_cancel' name='removeFile' fileName='"
  +fileObj.name.replace("'", "%27")+"' type='button'>
   </div>
  <a class='lightbox' href='" + self.attr("path")
   + fileObj.name.replace("'", "%27") + "'><span class='fileName'>"
+fileObj.name+"</span></a>");


由于某些原因,当我们点击链接时,它仍会在新窗口中打开,并且不会启动灯箱。

在我的页面中,我看到了这一点(所有正常情况)

<a class="lightbox" href="uploads/nutshell.png">
 <span class="fileName">nutshell.png</span>
</a>


哪个应该触发灯箱。在我上面发布的js代码中,有什么让您尖叫的东西吗?我想知道它的self.attr(“ path”)

这是我们拥有的:::::::

在divbox的js中,

$('.lightbox').divbox({caption: false});


在我们具有上载器的js中。

$("#uploader" + queueId).html("<div class='cancel'><input class='button_cancel' name='removeFile' fileName='"+fileObj.name.replace("'", "%27")+"' type='button'></div><a class='lightbox' href='" + self.attr("path") + fileObj.name.replace("'", "%27") + "'><span class='fileName'>"+fileObj.name+"</span></a>");

最佳答案

大概您正在执行以下操作:

$('a.lightbox').divbox({ ... })


在使用以下方法添加有问题的<a>之前:

$("#uploader" + queueId).html("...");


$('a.lightbox')仅适用于在调用$('a.lightbox')时页面上存在的元素,它不会将DivBox绑定到稍后添加到页面上的元素。您必须将DivBox绑定到添加的新<a>中,如下所示:

$("#uploader" + queueId).html("...");
$('#uploader' + queueId).find('a.lightbox').divbox({ /* and whatever options you need */ });


该技术的粗略演示:http://jsfiddle.net/ambiguous/EswfB/

09-07 20:32