在页面加载Cerabox + Mootools时启动Lightbox

时间:2013-07-04 15:21:06

标签: javascript mootools lightbox

我有Cerabox lightbox设置,工作正常。但我很乐意看到它在页面加载时执行而没有访问者点击链接。任何人都有功夫的mootools技能,可以帮助吗?

以下是代码:

window.addEvent('domready', function(){
//modal
$$('a.video').cerabox({
width: 560,
height: 345,
displayOverlay: false
});

<a href="http://www.youtube.com/embed/h8WiyX21A1c?rel=0&amp;autoplay=1" class="video youtube"><img src="http://thumbnail.jpg" alt="video thumbnail"><div class="btn-play"><p>&gt;</p></div></a>

提前致谢!

1 个答案:

答案 0 :(得分:1)

不是最好的编写插件作为api,也不是很好,它扩展元素/元素原型,当它可以是一个吸气剂。构造函数接近100行...这是如何编写类。无论如何,这是由作者决定和维持......

https://github.com/ceramedia/CeraBox/blob/master/cerabox.js#L134-L143

这部分显示了一个非常非连续的元素绑定,没有像this.open这样的简单抽象。

但是,您可以选择像这样触发事件处理程序:

document.getElement('a.video').fireEvent('click'); // after cerabox init.

一件事:你做$$('a.video').cerabox() - 这是一个集合。你一次只能打开1个模态,所以...如果你的意思是单个元素绑定,它就像我的例子一样只是node.getElement(selector)

或者,您可以这样做:

var cb = el.retrieve('cerabox'); // some el from $$('a.video')
// gets actual class instance exposed through element storage

if (cb._itemClick(event)) {
    cb.currentItem = cb.collection.indexOf(cb);
    cb.showInline(); // or whatever method is appropriate
}

问题是他在私有函数中依赖于元素集合中的索引 - 因此.indexOf通过外部穿孔得到它......玩得开心