上传或克隆内容的灯箱行为

时间:2013-02-10 11:38:01

标签: jquery joomla mootools append squeezebox

我真的会请一些帮助!

我在Joomla的后端工作。你可能知道Joomla默认使用Mootools,它是默认的SqueezeBox灯箱。 我正在尝试构建一个模块,在其中我正在构建一个自定义字段,我在其中添加了追加或克隆的行。为此,我使用了Jquery DynoTable.js插件。

问题是每行内部都有一个调用模态灯箱iframe的链接。当我添加新行时,新行无法打开灯箱。

window.addEvent('domready', function() {
SqueezeBox.initialize({});
SqueezeBox.assign($$('a.modal'), {
    parse: 'rel'
});

});

不幸的是我不能改变这个脚本,它在Joomla的核心内部,不想触摸它。

我猜这是因为已经设置的触发器在domReady上并且仅适用于已经存在的Dom。为此,我尝试向DynoTable脚本添加一个后备“触发器”,该脚本调用Squeezebox灯箱再次应用:

onRowAdd: function(){
SqueezeBox.assign($$("a.modal"), {parse: "rel"}); 

},

这可行(将打开灯箱)但是已经设置的模态链接(来自已加载的行)将打开该模式中的2,3,4等iframe,具体取决于添加了多少新行。所以基本上新鲜的行将打开一个普通的灯箱,而旧的行将在该灯箱中打开多个iframe。

希望我解释得很好..非常感谢你们!

1 个答案:

答案 0 :(得分:2)

尝试将指定选择器更改为以下内容:

onRowAdd: function(){
   // YOURDYNTABLE_ID has to be a valid selector to specify the dynoTable, can 
   // be an ID or class of the table, or an parent element containing the table
   // with tr:last-child you only select the last row (the one you just added).
   SqueezeBox.assign($$("YOURDYNTABLE_ID tr:last-child a.modal"), {parse: "rel"}); 
}