添加类到这个href ..不工作?

时间:2012-01-20 04:05:40

标签: javascript jquery

我们的网站上有upraod功能。并上传文件,显示点击用户可以在新窗口中看到的文件链接。

我们还使用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(“路径”)

这是我们的::::::

在我们拥有的div的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>");

2 个答案:

答案 0 :(得分:1)

大概你正在做这样的事情:

$('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/

答案 1 :(得分:1)

要建立mu太短的答案,你可以这样实现:

$("#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>")
   .find('a.lightbox')
   .divbox({ /* and whatever options you need */ });

简单地将命令链接成一个。