Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JQuery未更新更新按钮数值调节

JQuery未更新更新按钮数值调节
EN

Stack Overflow用户
提问于 2021-03-02 06:54:49
回答 1查看 64关注 0票数 0

在下面的JQuery中,对setinterval进行Ajax调用以更新屏幕值,在超时后清除该间隔并停止更新。这部分起作用了。但是,当用户单击update按钮时,将进行一定数量的Ajax更新(10)。在开始时,通过添加类将微调器设置为旋转,在所有更新之后,删除微调器类以使微调器停止。但是,微调器甚至从不启动-所有其他屏幕更新都按预期工作。我做错了什么?

代码语言:javascript
运行
AI代码解释
复制
jQuery(document).ready(function($) {
      // set an interval. The callback gets executed every interval
      var setInterval1_ID = setInterval(triggerAjax, 10000); // 10 sec updates
      var timeout1_ID = setTimeout(stopSetInterval1, 100000); // this is 100 seconds for 10 updates

      $(document).on("click", "#refresh-button", function() {
        $("#refresh-button").addClass("fa-spin");
        var count = 0;
        while (count <= 9) {
          count = count + 1;
          triggerAjax();
        }
        $("#refresh-button").removeClass("fa-spin");
      });

      function stopSetInterval1() {
        // clear the interval trigger explicitly
        clearInterval(setInterval1_ID);

        // stop spinning of update wheel
        $("#refresh-button").removeClass("fa-spin");
        // also clear the timeout
        clearTimeout(timeout1_ID);
      }

      function triggerAjax() {
        $.post(my_ajax_obj.ajax_url, { //POST request
            _ajax_nonce: my_ajax_obj.nonce, //nonce extracted and sent
            action: "get_studer_readings" // hook added for action wp_ajax_get_studer_readings in php file
          },
          function(data) { // data is JSON data sent back by server in response, wp_send_json($somevariable)
            // update the page with new readings. Lets just log the value sto see if we are getting good data
            // console.log('data: ', data);
            // console.log('battery html', $('#power-battery').html());

            //Change Inverter output power value using Ajax delivered object data
            $('#power-load').html(data.pout_inverter_ac_kw + ' kW');

            // change the arrow class for Inverter Pout to Home using Ajax update
            $('#power-arrow-load').removeClass().addClass(data.inverter_pout_arrow_class);

            // Solar Power related values Ajax update
            //Change Solar output power value using Ajax delivered object data
            $('#power-solar').html(Math.round(data.psolar_kw, 2) + ' kW<br>' + '<font color="#D0D0D0">' +
              data.solar_pv_adc + 'A');
            // todo need to add the SOlar-PB current at battery interface
            // update the arrow based on ajax
            $('#power-arrow-solar').removeClass().addClass(data.solar_arrow_class);

            // Change the Battery values based on Ajax update
            $('#power-arrow-battery').removeClass().addClass(data.battery_charge_arrow_class);
            //Change Inverter output power value using Ajax delivered object data
            $('#power-battery').html(data.pbattery_kw + ' kW<br>' + '<font color="#D0D0D0">' +
              data.battery_voltage_vdc + 'V<br>' +
              data.battery_charge_adc + 'A');

            //Change Grid AC in power and arrow calss based on Ajax updates
            //Change Inverter output power value using Ajax delivered object data
            $('#ppower-grid-genset').html(data.grid_pin_ac_kw + ' kW<br>' + '<font color="#D0D0D0">' +
              data.grid_input_vac + 'V<br>' +
              data.grid_input_aac + 'A');
            // change the arrow class for Inverter Pout to Home using Ajax update
            $('#power-arrow-grid-genset').removeClass().addClass(data.grid_input_arrow_class);
          });
      }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 08:15:20

$.post是异步的,所以它会在毫秒内添加或删除类,你可以使它同步,但不建议这样做,因为它会使你的浏览器冻结/无响应,将$("#refresh-button").removeClass("fa-spin");放在post回调中

代码语言:javascript
运行
AI代码解释
复制
var count = 0; // <== make the variable global
jQuery(document).ready(function($) {
      .......
      // update the following
      $(document).on("click", "#refresh-button", function() {
        $("#refresh-button").addClass("fa-spin");
        count = 0;
        var thisCount = 0
        while (thisCount <= 9) {
          thisCount++;
          triggerAjax();
        }
      });

      function triggerAjax() {
        $.post(my_ajax_obj.ajax_url, { //POST request
          .......
          function(data) {
            ...........
            $('#power-arrow-grid-genset').removeClass().addClass(data.grid_input_arrow_class);
            // add this block
            count++; // <== update count
            if(count == 9){
                $("#refresh-button").removeClass("fa-spin"); // <== remove it here
            }
            // end block
          });
      }
});

上面的代码将使你并行运行后串行化

代码语言:javascript
运行
AI代码解释
复制
 $(document).on("click", "#refresh-button", function() {
    $("#refresh-button").addClass("fa-spin");
    count = 0;
    triggerAjax();
  });

function triggerAjax() {
$.post(my_ajax_obj.ajax_url, { //POST request
  .......
  function(data) {
    ...........
    $('#power-arrow-grid-genset').removeClass().addClass(data.grid_input_arrow_class);
    // add this block
    count++;
    if(count == 9){
        $("#refresh-button").removeClass("fa-spin");
    }
    else{
        triggerAjax();
    }
    // end block
  });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66434631

复制
相关文章
MFC编程之数值调节按钮
  2.注意TAB键顺序. EDIT + 数值按钮. EDIT为1.那么数值按钮就要为2
IBinary
2019/05/25
1.1K0
winform 窗口未创建数据更新
this窗口未创建前,不允许使用invoke,可以使用invokerequire避免抛出异常
sofu456
2020/03/18
1.8K0
Vue视图未更新再次踩坑
今天遇到一个Vue数据更新了,但是视图未更新的问题,折腾了我2小时才搞定,有必要记录下来,防止日后再次踩坑。
Daotin
2021/01/07
1.1K0
JQuery实现双击编辑异步更新
<script type="text/javascript"> $(function(){ $("tbody>tr>td").dblclick(function(){ var inval=$(this).html();//获取内容 var keyword=$(this).attr("key");//获取要更新的字段 var upid=$(this).parents().attr("index");//获取更新哪一行 $(this).html("<input id=’edit"+keyw
苦咖啡
2018/05/07
1.5K0
【AI】机器学习-线性回归(未更新完)
回归问题主要关注确定一个唯一的因变量(dependent variable)(需要预测的值)和一个或多个数值型的自变量(independent variables)(预测变量)之间的关系。 需要预测的值:即目标变量,target,y,连续值 预测变量:影响目标变量的因素,predictors,X1…Xn,可以是连续值也可以是离散值 之间的关系:即模型,model,是我们要求解的
天天Lotay
2023/03/23
1.5K0
【AI】机器学习-线性回归(未更新完)
jquery常用函数及技巧(持续更新)
版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/details/51279552
空空云
2018/09/27
5030
抓紧更新!多个勒索软件组织针对未更新的IBM文件传输软件
IBM Aspera Faspex 是一个被企业广泛采用的文件传输应用程序,以能够安全和快速传输大型文件而广受青睐。 安全专家警告说,IBM 于2022年12月8日在软件中修补的一个漏洞(可用于回避身份验证和远程利用代码)正在被多组使用加密恶意软件的攻击者滥用。 虽然该漏洞在12月被修补,但IBM并没有立即详细说明该漏洞随后便在更新中修复了漏洞。在1月26日的安全警报中,IBM表示,该漏洞被命名为CVE-2022-47986,CVSS基本评分为9.8,可允许远程攻击者在系统上执行任意代码。 随后,恶意活动追
FB客服
2023/04/04
2.3K0
抓紧更新!多个勒索软件组织针对未更新的IBM文件传输软件
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
这里匹配了flag|system|php这三个字符串且不分大小写。payload还是可以用web29的
YanXia
2023/04/07
7.4K0
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
【数据库报错(未删除任何行,未更新任何行)】
首先查看定义的表格数据类型有无问题,点击表格编辑前100行 如何更改编辑行数:更改编辑行数 这里的允许NULL值为通过输入端输入后,写进数据库是否包含空值 例如,输入端通过注册输入注册名后,若允许NULL值未勾选,则写进表格的为用户名+数据类型除了用户名所占字节剩余用空格进行填充(写入表格中的数据为用户名+若干空格) 若允许NULL值勾选了,则写进表格的即为刚刚进行注册的用户名,其后没有多余空格
magize
2023/07/11
4370
【数据库报错(未删除任何行,未更新任何行)】
jquery 置顶按钮
这个图片我用了阿里的矢量图库,如果不懂如何使用的朋友,可以访问iconfont阿里巴巴矢量图标库从注册到使用。
Devops海洋的渔夫
2019/06/02
3.1K0
jface databinding:UpdateValueStrategy(数值更新策略)类详解
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/53857624
10km
2019/05/25
5410
通过代码WordPress文章超过N天未更新提示
方法:复制以下代码添加至文章页面Single.php 添加至合适的位置其中代码中的180为180天,可根据需要自行修改。
叮当叮
2020/04/20
1.2K0
通过代码WordPress文章超过N天未更新提示
python多进程,全局变量未更新问题
问题:子进程全局变量没有按照预想的更新,导致数据没有写入磁盘。进程池必须在if __name__ == '__main__'下面使用 复现:见实验代码 环境:centos7, python3.7 原因: 子进程的__name__属性值不是'__main__' 解决办法:需要用到的资源要在if __name__ == '__main__':语句之前确定好。在这语句之后的值不会传递到子进程里。
py3study
2020/01/02
2.8K0
ios 版本更新提示-硬更新/软更新
步骤一: 将检测更新写到APPDelegate的applicationDidBecomeActive中
用户1219438
2019/01/03
1.3K0
简析Jenkins的SVN插件未更新到最新代码
在使用Jenkins做持续集成时,遇到Jenkins的SVN插件没有更新到最新的代码的情况。
donghui
2019/04/19
2.7K0
简析Jenkins的SVN插件未更新到最新代码
Jenkins 更新中心证书更新
2021 年 3 月 29 日,我们会更新 Jenkins 更新中心的证书。当前的证书将会于 2021 年 4 月过期。当新证书启用后,Jenkins 2.178 之前的版本(2018 年)就无法与默认的更新中心以及实验性更新中心通讯。对于自行部署的更新中心,则不会收到影响。对于插件更新,更新中心会支持一年内的 Jenkins core 的版本,2.204 就是最老的版本。
LinuxSuRen
2021/04/13
1.1K0
Jenkins 更新中心证书更新
npm更新和nodejs更新
更新Nodejs自身。一直依赖我都是下载最新版的源码,然后make install,及其繁琐。其实只需要运行以下2个命令即可:
lilugirl
2019/05/28
4.1K0
数据更新接口与延迟更新
title: 数据更新接口与延迟更新 tags: [OLEDB, 数据库编程, VC++, 数据库] date: 2018-02-12 14:29:35 categories: windows 数据库编程 keywords: OLEDB, 数据库编程, VC++, 数据库,数据库数据更新, 延迟提交 --- 在日常使用中,更新数据库数据经常使用delete 、update等SQL语句进行,但是OLEDB接口提供了额外的接口,来直接修改和更新数据库数据。
Masimaro
2018/08/31
1.7K0
利用 jQuery 获取 url 参数值
函数 $.extend({ getUrlVars: function(){ var vars = [], hash; var hashes = window.location.h
Tony He
2022/11/17
1.8K0
python 更新svn 并 ftp更新
#!/usr/bin/env python # -*- coding:utf-8 -*- import pysvn import locale import datetime import sys import os import json from ftplib import FTP def setlocale(): language_code, encoding = locale.getdefaultlocale() if language_code is None:
py3study
2020/01/09
1.6K0

相似问题

Jquery数值调节按钮

20

excel的数值调节按钮

10

更新按钮未更新

23

jQuery按钮集未反映更新

30

数字输入-始终显示数值调节按钮

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档