我正在试图弄清楚如何使用jquery在每次单击按钮时在矩阵字段中动态加载幻灯片。
我有这个矩阵字段,其中可以包含任意数量的图像。存在少量但可变数量的条目(约5个),每个条目在其矩阵字段中具有不同的幻灯片内容。
一个选项是我可以创建一个单独的模板,只输出矩阵字段,然后有选择地拉入< li>由id with .load
$('#result')。load('ajax / test.html #container');
但此模板仅适用于最近的条目,并会为其他人提供错误的幻灯片。
我认为这样做的另一种方法是使用jquery动态更新矩阵参数。但是,我似乎无法在js中编写EE标签,然后进行解析:
$('ul#slides')。html(“{project_images limit ='2'offset ='0'} {/ project_images}”);
这只是渲染静态html。
我觉得可能有一些方法可以做到这一点,也许使用我不知道的(javascript模板?)。
我最好的线索是来自brandon kelly的简短帖子:https://getsatisfaction.com/pixelandtonic/topics/method_to_limit_matrix_results_for_slideshow
但我不确定下一步该做什么......
有没有人想过如何做到这一点?
谢谢!
答案 0 :(得分:5)
上述评论很重要;确保你的{project_images}{/project_images}
标签对中确实有东西。
同时检查您的配置 - 在管理员 - >下安全 - >输出和调试,或者如果您更喜欢使用基于文件的配置,请在配置文件中 - 并确保Debugging
设置为1
(仅向Superadmins显示错误消息), 不到0
(不要显示错误消息)。设置为0会导致Javascript中的EE标记出现奇怪问题,并且始终存在。
答案 1 :(得分:4)
您计划使用jQuery .load()加载其他内容,将其他矩阵内容作为html片段加载。
要确保为正确的条目加载矩阵数据,您可以将entry_id作为网址段传递。
所以:
创建一个名为“ajax.group”的模板组,并添加一个名为“matrix.html”的模板(这些名称是任意的)。然后当你加载矩阵数据时,你会这样做
$('#result').load('/ajax/matrix/{entry_id} #container');
确保将此jQuery放在模板中的某个位置,其中{entry_id}将被解析并提供当前查看的条目ID。或者,您可以使用url_title或包含entry_id或url_title的基于段的变量。
然后,在ajax / matrix模板中,您可以执行类似
的操作<div id="container">
{exp:channel:entries channel="channel_name_here" entry_id="{segment_3}"}
{matrix_custom_field_name offset="1"}
{matrix_column_short_name_here}
{/matrix_custom_field_name}
{/exp:channel:entries}
</div>