我在JQuery中有这个代码:
$().ready(function() {
{exp:weblog:entries weblog="locations" show_expired="yes" show_future_entries="yes" orderby="date" sort="desc" limit="5" rdf="off" disable="member_data|trackbacks" status="open|featured|ongoing"}
$('a.Favorites_Trigger_{entry_id}') .click (function() {
$.get(this.href, function(data) {
$('span.favoritesspan_{entry_id}').html(data);
$('dl.favoritesul > dd.entry_{entry_id}').replaceAll('dl.favoritesul > dd.entry_{entry_id}');
});
return false;
});
我想要做的是:当点击一个链接时,它当前更新了我页面主要部分的数据库(称之为widget.php),现在widget.php还有一个侧栏,我要在其中显示刚刚发生的触发事件的新结果。我点击链接说添加或删除此收藏夹。它基本上是一个“我最喜欢的”php模块,但是一旦链接被点击,我似乎无法获得更新的结果,尽管数据库发生了变化,我看到了浏览器的硬刷新。那么有可能让该部分刷新JQuery样式吗?
感谢Soviut的回答。它实际上是一个表达式引擎模块,它通过单击文件一来调用函数来添加/删除,在文件二中它添加或删除函数。侧栏正在拉结果,我将该文件称为三。谢谢你看看。
代码如下:
文件一:
{if logged_in}
{exp:favorites:saved entry_id="{entry_id}"}
{if saved}
<span class="favoritesspan_{entry_id}"><em>Saved as a favorite.</em> <a class="Favorites_Trigger_{entry_id}" href="{path='features/favorite-add/'}{entry_id}/delete">Remove from favorites list?</a></span>
{/if}
{if not_saved}
<span class="favoritesspan_{entry_id}"><a class="Favorites_Trigger_{entry_id}" href="{path='features/favorite-add/'}{entry_id}/add">Add this item to your favorites?</a></span>
{/if}
{/exp:favorites:saved}
{/if}
文件二:(处理器)
{exp:favorites:save weblog="funxyz"}
文件三:
<dl class="favoritesul">
{exp:favorites:entries weblog="funxyz" show_expired="yes" show_future_entries="yes" dynamic="off" status="open|featured|ongoing"}
<dd class="entry_{entry_id}">{title}</dd>
{/exp:favorites:entries}
</dl>
答案 0 :(得分:1)
您的条目ID可能无法按预期工作,因为您使用的模板标签在发送到客户端之前会在服务器上呈现。这意味着如果您在浏览器中查看源代码,那么生成的JQuery代码将使用单个硬编码值代替您正在使用的{entry_id}标记。这意味着,理论上,JQuery代码只能处理第一个或最后一个条目,具体取决于模板的处理方式。
您需要做的是让您的JQuery代码更加通用。只需点击数据库中的列表即可,例如,点击任何名为a.favourites_trigger
的内容。
如果您可以发布一个有效的示例,它可能会使事情变得更容易。