【发布时间】:2019-04-12 15:35:12
【问题描述】:
所以我有以下文件结构:
plugins/myname/pluginname/components/pluginname/default.htm
plugins/myname/pluginname/components/PluginName.php
default.htm 充当组件的一部分。 我有以下 JS API
setInterval(function(){
$.request('onEverySecond', {
update: {'@default.htm':'#rate-marquee'},
complete: function() {
console.log('Finished!');
}
})
}, 1000);
onEverySecond 是PluginName.php 中的一个函数,它将一个名为fx 的变量更新为default.htm。
在前端,部分default.htm 似乎已更新,但它刷新了整个部分,这不是我想要的,它导致选框一次又一次地重播,只能显示前几块内容。
我想要的只是 AJAX 将只更新数据更新的变量fx。
我怎样才能做到这一点?
编辑1:
这里是部分标记:
{% set fx = __SELF__.fx %}
<marquee id="rate-marquee" name="rate-marquee" onmouseover="this.stop();" onmouseout="this.start();">
<ul>
{% for item in fx %}
<li>
{{ item.Item | trim('u')}}: {{ item.BID }} {% if item.Revalue == 0 %} <div class="arrow-up"></div> {% else %} <div class="arrow-down"></div> {% endif %}
</li>
{% endfor %}
</ul>
</marquee>
另外,这里是 PluginName.php 中的代码
public function onRun()
{
$this->addJs('/plugins/SoyeggWebDevelopment/fxmarquee/assets/js/default.js');
$this->updateFX();
}
public function onEverySecond()
{
$this->updateFX();
}
public $fx;
所以 updateFX() 也可以很好地工作。
【问题讨论】:
-
你能分享部分标记和
fx使用的变量吗? -
@HardikSatasiya 感谢您的回复。在选取框刷新时,该变量每秒都会完美更新。然而,整个选取框每次都会刷新,因此选取框会一次又一次地重新启动循环。我更新了标记,请看一下,谢谢!
标签: javascript ajax octobercms