2014-03-25 40 views
0

我遇到了一个问题,即滑动侧栏内的模式弹出链接无法正常工作以打开模式弹出框。滑动边栏只有在用户点击时才会打开,并且其中将包含包含模式链接的内容。Joomla JHtml Behavior.Modal应用于滑动侧栏

我已经加入

Jhtml::_('behavior.modal'); 

在代码的开始,但仍然无法正常工作。我的链接代码如下

<a class="modal" rel="{handler: 'iframe', size: {x: 750, y: 600}}" href="index.php">Click me</a> 

基于此链接,它应该(在滑动侧边栏的主网页,而不是)打开在正常情况下,一个模式弹出框的内容。但是,当它位于滑动侧栏中时,它不起作用。

我想到的主要原因可能是因为滑动边栏是在网站加载后动态创建的,所以链接不会像模式链接那样工作,而只是一个普通的href链接。

我已经看到了网上的回复表明here

SqueezeBox.assign($$('a.modal'), { 
parse: 'rel' 
}); 

你添加新元素每次执行。但我不知道它是什么意思以及如何执行它。

有没有人在这里有一个解决方案,使滑动边栏模式链接工作?

回答

0

最后,我自己找到了答案。对于任何人谁可能会遇到这个问题,AJAX或动态内容只需添加以下到您的网页加载JavaScript的

$('body').on('click', 'a.osmodal', function(event) { 
event.preventDefault(); 
SqueezeBox.open($(this).attr('href'), { 
handler: 'iframe', 
size: {x: 900, y: 500} 
}); 
}); 

这只是一个简单的贡献,希望有人会发现它有用。

+0

不错的发现,你也可以通过使用jQuery加载到变量并在你的open方法中使用你的anchor的rel属性。 –

0

想要回答你关于将Joomla的核心模态行为分配给动态生成内容的正确方法的问题,因为你太亲近了。在工作中,我们使用AJAX /延迟加载生成大量内容。

分配方法有两个参数。第一个表示应用哪个DOM元素,下面我包含了通过class或id进行分配的示例。第二个是JSON对象选项,其中10个中的9个将已经连接到您的anchor元素的rel属性。

作为此方法的最终警告必须在将动态生成的HTML插入DOM后运行。

使用

SqueezeBox.assign(
    $$('a.modal.unique-class-identifier'), 
    $('a.modal.unique-class-identifier').attr('rel') 
}); 

使用ID

SqueezeBox.assign(
    'a.modal#unique-id-identifier', 
    $('a.modal.unique-class-identifier').attr('rel') 
}); 

希望有所帮助。

0

有同样的问题,我已经加载页面后动态地添加一些链接在Joomla页面。下面剪断添加的事件处理程序上新增的元素模态对话框(确保它被称为添加元素后):

<script> 
SqueezeBox.assign(jQuery('a.modal'), { 
parse: 'rel' 
}); 
</script> 

另外,还要确保你有模态功能性(如)加载您模板:

JHTML::_('behavior.modal');