我真的会请一些帮助!
我在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。
希望我解释得很好..非常感谢你们!
答案 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"});
}