我有一个教育CMS,它一直在使用thickbox图像。我现在想通过删除thickbox类并使用jQuery添加colorbox类来替换colorbox。类替换正在发生,但颜色框不会触发。如果我手动更改CMS中的类,它可以正常工作。
jQuery(".thickbox").removeClass("thickbox").addClass("colorbox");
我已将调用移到了对colorbox脚本调用之上的替换脚本,但仍然没有用。
有什么想法吗? colorbox在第一次加载时是否需要DOM中的类?
由于 米
答案 0 :(得分:1)
我认为问题在于写入thickbox和colorbox的方式:
Colorbox是作为jQuery插件实现的,它与Thickbox的自包含小部件模型有点不同(并且更好)。不同之处在于,Thickbox会自动使用thickbox类查找并应用效果,Colorbox需要您告诉它要处理哪些元素。
您可以删除自己的行:
jQuery(".thickbox").removeClass("thickbox").addClass("colorbox");
然后,在包含点颜色框之后,包括:
$(function(){
$('a.thickbox').colorbox();
});
这将使用默认设置初始化页面中任何具有“thickbox”类的链接上的colorbox。您可以通过包含对象来向colorbox添加设置,如下所示:{key:value, key:value, key:value}
。可用设置位于颜色框说明页面上。
作为一个jQuery样式点,你不应该使用普通的类选择器jQuery('.something')
- 这将遍历整个页面中寻找该类的每个元素,这在旧的浏览器/机器中非常慢。使用您想要的标记名称jQuery('a.something')
限定选择器,和/或给出选择器上下文 - 通过包含要查看的元素的ID:jQuery('a.something', '#contentBox')
(其中包含“包含你的东西”对此感兴趣。