我使用的是十月CMS,在框架中我可以使用以下HTML元素进行AJAX调用:
<a href="#" class="sbutton" data-request="onSavedeal"
data-request-data="deal_ID:'14779255',type:'local',active:'0'">
<i class="material-icons pink-text listfavorite">favorite</i>
</a>
每当点击收藏夹按钮时,就会触发对控制器的更新&#34; onSavedeal&#34;。第一次单击时更新数据库工作正常。但是,在更新之后,&#34;数据请求数据的值为#34;属性未更新,因此该按钮不适用于后续点击。
我需要更改链接,以便&#34;有效:&#39; 0&#39;&#34;成为&#34;活跃的:&#39; 1&#39;&#34;。得到的完整元素将是
<a href="#" class="sbutton" data-request="onSavedeal"
data-request-data="deal_ID:'14779255',type:'local',active:'1'">
<i class="material-icons pink-text listfavorite">favorite</i>
</a>
在框架中,我可以添加另一个名为&#34; data-request-success&#34;执行一个javascript函数(或代码)成功完成AJAX调用。我怎样才能创建一个名为&#34; updateactive()&#34;这将在0和1之间切换活动值。最终元素应如下所示:
<a href="#" class="sbutton" data-request="onSavedeal"
data-request-data="deal_ID:'14779255',type:'local',active:'0'"
data-reuqest-success="updateactive();">
<i class="material-icons pink-text listfavorite">favorite</i>
</a>
答案 0 :(得分:1)
如果您可以安全地按属性a
识别具有值data-request
的{{1}}元素,则可以按如下方式编写onSavedeal
函数:
updateactive
不要忘记将function updateactive() {
var newAttrValue = "deal_ID:'14779255',type:'local',active:'1'";
$('[data-request="onSavedeal"]').attr('data-request-data', newAttrValue);
}
更改为data-reuqest-success
。
<强>更新强>
如果页面上有许多data-request-success
元素,则可以重复使用如下所示的相同功能。查看演示 - Fiddle。
a
答案 1 :(得分:0)
以这种方式更改锚标记
<a href="#" class="sbutton" data-request="onSavedeal"
data-request-data="deal_ID:'14779255',type:'local',active:'0'"
data-reuqest-success="updateactive(this);">
<i class="material-icons pink-text listfavorite">favorite</i>
请注意更改updateactive(this);
然后在你的jquery中,你可以通过这种方式获得函数定义。
function updateactive(element) {
$(element).attr('data-request-data', $(element).attr('data-request-data').replace("active:'0'", "active:'1'"));
}