0

我真的需要一些帮助!

我在 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。

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

4

1 回答 1

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"}); 
}
于 2013-02-10T12:09:57.820 回答