该项目需要一个淘汰计时器

2024-01-21

我的项目需要一个淘汰计时器,只需单击一下即可在计时器达到 0 后重新启动。我有以下代码,但这不会重新启动。有人可以帮助我吗?

this.countDown = ko.observable();

ko.bindingHandlers.timer = {

    update: function (element, valueAccessor) {
        var sec = $(element).text();
        var timer = setInterval(function () {

            $(element).text(--sec);
            if (sec == 0) {
                clearInterval(timer);

            }
        }, 1000);
    }
};

如果您想使用问题中的方法,请替换此行:

clearInterval(timer)

像这样的东西:

sec = 61;

在工作中看到这个:

ko.bindingHandlers.timer = {

    update: function (element, valueAccessor) {
        var sec = $(element).text();
        var timer = setInterval(function () {

            $(element).text(--sec);
            if (sec == 0) {
                sec = 61;
            }
        }, 1000);
    }
};

var vm = { countDown: ko.observable() };

ko.applyBindings(vm);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<div id="timer"> <span data-bind="timer: countDown">60 </span> </div>

但是,我建议将这种逻辑封装在 ViewModel 中,而不是自定义绑定中。例如,这种视图模型可以工作:

function ViewModel() {
    var self = this;
        
    self.timer = ko.observable(60);
     
    setInterval(function() {
        var newTimer = self.timer() - 1;
        self.timer(newTimer <= 0 ? 60 : newTimer);
    }, 1000);
};

ko.applyBindings(new ViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<div id="timer"> <span data-bind="text: timer"></span> </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

该项目需要一个淘汰计时器 的相关文章

  • Knockback.js 生产准备好了吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • KnockoutJS - 打印迭代索引作为输入名称

    我正在尝试结合 Spring MVC 创建我的第一个 KnockoutJS 表单视图 ModelAttribute捆绑 数据通过 Ajax 加载并使用 KnockoutJS 填充 通过 KnockoutJS 添加数据 通过 Ajax 和 K
  • 使用自定义绑定处理程序输入文本水印

    我一直在尝试创建一个自定义绑定处理程序 我可以使用它为文本输入字段提供水印行为 By watermark我的意思是 向文本字段添加默认值 这些默认值在焦点时被删除 如果文本字段仍然为空 则在模糊时被替换 我已经设法让它工作 如 jsfidd
  • DurandalJS 路由行为

    我拥有的 试图了解发生了什么以及如何控制它 我对尚未经过身份验证的用户有一个 公共 视图 对经过身份验证的用户有一个 主页 视图 这是我的路线配置 app start then function Replace viewmodels in
  • 如何检查淘汰赛中的包含

    我正在使用淘汰赛 我有一个 html 页面 我想在其中检查具有某些值的字符串 就像我有一个字符串 A B C D F G H I 一样 我只想用剔除 if 检查 html 中的这个字符串 模型 var viewModel function
  • 如何让 ko.compated 处理对象内的可观察值

    我有一个相当简单的视图模型来保存数据数组并获取一个我想用来过滤数据的字符串 我有一些非常简单的标记来渲染它 如下所示 section class task list ul li li ul section
  • 如何清除/删除 Knockout.js 中的可观察绑定?

    我正在将功能构建到用户可以多次执行的网页上 通过用户的操作 创建一个对象 模型并使用 ko applyBindings 将其应用于 HTML 数据绑定 HTML 是通过 jQuery 模板创建的 到目前为止 一切都很好 当我通过创建第二个对
  • Edge 中的 Javascript 仅适用于打开的 devtools

    我遇到的问题是 在 MS Edge 中 我的图像映射功能只能部分工作 它由淘汰赛 FW 提供动力 在更大的图像映射上 它不会将整个图像映射注册到视图模型中 因此 图像映射的所有悬停效果和单击样式都会停止工作 然而 这只是大图像地图的问题 还
  • 淘汰赛“闪烁”问题

    我正在使用 KO 构建 SPA 单页应用程序 该应用程序看起来像一本书 用户可以翻页 问题是 每次加载页面时 都会有一小段时间页面 闪烁 用户会看到页面的无样式版本 我猜这是因为很多样式都依赖于 ko 绑定 所以在 ko 完成它 神奇 之前
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • 声明为对象文字与函数的剔除视图模型之间的区别

    在knockout js中 我看到视图模型声明为 var viewModel firstname ko observable Bob ko applyBindings viewModel or var viewModel function
  • Hasfocus 与 Firefox 的绑定问题

    我正在开发一个应用程序 它利用可观察数组来呈现可编辑的用户 ID 信息表 该应用程序在 Chrome 中运行得非常好 但在 Firefox 中运行时遇到问题 就我的目的而言 这两个浏览器是我目前唯一关心的 我通过以下方式使用 单击编辑 功能
  • Knockout JS 中的多个扩展器不起作用

    刚刚在KO中找到了出路 所以请温柔一点 每个扩展器单独工作 但是当我链接它们时 第一个 重置 不会触发 JavaScript ko extenders reset function target var initialValue targe
  • 使 Knockout applyBindings 将选择选项视为数字

    我将 Knockout 与 html select option 结合使用 请参阅Fiddle http jsfiddle net hf5gb
  • jQueryUI 可排序列表与 Knockout 相结合 - 嵌套可排序列表

    我是 Knockout 的新手 几天 正在尝试重新设计一个包含嵌套可排序列表的页面以使用它 我在这里找到了使用可排序列表和 Knockout 的一个很好的答案 jQuery UI Sortable 的 Knockout 自定义绑定 奇怪的行
  • Knockout 验证 - 空时不验证输入 + 提交时评估

    检查这个小提琴 http jsfiddle net bhzrw01s http jsfiddle net bhzrw01s 我试图做两件事 第一 当字段为空时不要验证 我知道有一个 onlyif 选项 但是有更简单的吗 第二 当我点击提交时
  • Onclick使用knockout js绑定图像

    我想显示来自 allDoorColorStandard 的图像 HTML 单击 颜色数据 div 我想更新图像 在警报中 我正在获取图像 URL 现在需要绑定到图像标签中 div img class mappimg width 45 hei
  • Knockout 如何将对象绑定到复选框和单选框

    参考here http jsfiddle net SimonYong kf6U8 2 如何将对象 没有可观察的 绑定到复选框和单选值中 以便我得到的值 值和值 是一个普通对象 没有可观察的 HTML Selection List a cla
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素

随机推荐

  • 将图像中的所有白色像素转换为黑色像素

    我有这张图片rand walk 2 png 我想将所有白色像素转换为黑色像素 这样就有了一张图片红色随机游走在黑色背景上 这意味着我不能仅仅反转图像的颜色 我当前的代码只是找到白色像素并将它们设置为黑色 from PIL import Im
  • ADO.NET 中具有 GROUP BY 功能的聚合函数

    这是一个更直接的问题 源于较早的问题我之前有过更普遍的问题 https stackoverflow com questions 828356 allowing a user to create a custom query of a tab
  • 带有自定义图块的动态谷歌地图可防止重复平移

    我有一个动态图块集 我不想允许平移超出其范围 下面的代码让我很接近 但用户仍然可以在严格边界之外水平滚动 因为它使用地图中心进行比较 var strictBounds new google maps LatLngBounds new goo
  • 无法授予对证书、标识符和配置文件的访问权限

    我购买了一个苹果开发者帐户 我正在尝试添加一个用户作为管理员并授予对证书 标识符和配置文件的访问权限 但该复选框已禁用 我无法勾选它 我认为您已经创建了 Apple 开发者帐户个人 要将其他用户添加为具有 证书 标识符和配置文件 访问权限的
  • Rails,Ruby,如何对数组进行排序?

    在我的 Rails 应用程序中 我正在创建一个数组 如下所示 messages each do message list lt lt id gt message id title gt message title time ago gt m
  • WIF滑动会话重新认证

    我已经在依赖方应用程序中实现了滑动会话 如中所述WIF 4 5 的滑动会话 http www cloudidentity com blog 2013 05 08 sliding sessions for wif 4 5 就目前而言 这很有效
  • 创建带有任何参数的 std::functions 的 unordered_map ?

    我正在尝试创建一个无序地图std functions 其中键是一个字符串 您将在其中查找要调用的函数 而该函数就是值 我写了一个小程序 include
  • 多边形不是封闭的

    我注意到 当使用绘图管理器绘制多边形时 它们没有关闭 即最后一个点到第一个点没有坐标 我知道 Google Maps API v3 会自动关闭多边形 但 Google Earth Google Static Maps API 或任何其他软件
  • 在 iOS 8 框架中使用类别

    我正在尝试使用框架在应用程序和扩展之间共享一些代码 大多数情况下 这是有效的 但我有几个类别似乎无法在扩展中正确加载 例如 我在 NSString 上有一个类别来反转目标字符串 但是当我尝试在扩展中使用该选择器时 我的代码会陷入 无法识别的
  • 在 JS 中格式化 Date()

    我有脚本然后需要获取这种格式的日期和时间08 25 2017 1 54 PM 我为日期编写代码 这里是 document ready function var dateNow new Date var dd dateNow getDate
  • 如何在React中给组件添加滚动条?

    我在 SPA 中使用带有 3 列的网格系统 左右列表包含占用 100 视口高度的组件 中间列包含一个长列表 并且想在中间组件中添加一个滚动条 我尝试用几个不同的滚动条组件编写中间组件 但没有任何效果 我最终总是看到一个主页滚动 当进一步向下
  • 绘图程序

    我倾向于成为一个视觉思考者 因此 如果我可以想象程序中的数据流 那么我就可以更好地理解其中发生的事情 而不是阅读正在发生的事情的文本故事 伪代码 有没有一种方法可以直观地表示变量和对象流经函数以及被函数更改的方式 最好是在小规模 单个函数内
  • 如何使用 NSUserDefaults 在 Swift 中保存 Int 数组?

    这是一个数组 var myArray 1 它包含Int values 这就是我保存数组的方式NSUserDefaults 这段代码似乎工作正常 NSUserDefaults standardUserDefaults setObject my
  • 关闭后如何清除模态中的反应状态?

    我有一张显示产品详细信息的产品卡 底部有一个 编辑 button When clicked它显示了一个预填充的模态input字段 可以编辑然后保存 模态框也可以关闭而不保存 但已编辑输入字段 我的问题是 当用户编辑字段时 然后关闭模式 不保
  • iOS 16 模拟器:在模拟器中运行应用程序会导致“.xpc 错误”

    更新到 macOS 13 0 Beta 并安装 Xcode 14 0 Beta 后 我们运行一个应用程序 将目标操作系统设置为 16 出现以下错误 手动启动时 iPhone 模拟器也不会启动 这里是描述问题的详细错误消息 Details T
  • 将镜像从 ECR 拉取到 Kubernetes 部署文件

    我在从 AWS ECR 存储库中提取 docker 映像时遇到了这个问题 之前我使用过 kubectl create secret docker registry regcred docker server https index dock
  • 在 MATLAB 中执行此类 Python 向量化赋值的等效方法是什么?

    我正在尝试将这行代码从 Python 转换为 MATLAB new img M 0 corners 0 0 M 1 corners 1 0 img T 0 T 1 所以 很自然地 我写了这样的东西 new img M 1 corners 2
  • 导入Visual Studio测试项目时如何创建vsmdi/testrunco​​nfig文件?

    当我添加现有测试项目时 我的解决方案缺少 vsdmi 和 testrunco nfig 文件 如何创建它 这个问题的解决方案有点棘手 您必须将 新项目 添加到您的解决方案中 而不是您的测试项目中 在 添加新项目 对话框中 您可以选择 测试运
  • 使首选项看起来已禁用,但仍记录点击

    因此 在我的应用程序的某些状态下 我想在我的设置菜单中禁用某些 CheckBoxPreferences 但是 如果用户单击它们 我希望显示一个解释性的 toast 如果我只是执行 setEnable false 在 CheckBoxPref
  • 该项目需要一个淘汰计时器

    我的项目需要一个淘汰计时器 只需单击一下即可在计时器达到 0 后重新启动 我有以下代码 但这不会重新启动 有人可以帮助我吗 this countDown ko observable ko bindingHandlers timer upda