首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将Jquery事件分配给动态按钮的最佳方法

将Jquery事件分配给动态按钮的最佳方法
EN

Stack Overflow用户
提问于 2014-02-26 19:52:08
回答 3查看 161关注 0票数 0

我正在基于用户操作动态生成twitter引导模态(长篇大论)。假设有时候用户可以在他的屏幕上看到100个模态。在每个模式中,我都有5个动态按钮,每个按钮都有自己的用途,并且在所有模式中都是一样的,并且有不同的id。

每当有一个新的twitter模式打开时,我就会使用jquery将onClick事件附加到这些按钮上,如下所示

代码语言:javascript
运行
AI代码解释
复制
$(document).on("click","#btn"+btnNumber, function(){
   //Code Goes Gere
});

因此,如果我打开100个通道,每个通道都有5个按钮,那么将点击事件分配500次是不是一个好主意?

或者,通过使用单击事件的name属性指定单击事件1次,如下所示

代码语言:javascript
运行
AI代码解释
复制
$(document).ready(function(){
    $(document).on("click","btnNameAttr", function(){
       //Code Goes Gere
    });
});
EN

回答 3

Stack Overflow用户

发布于 2014-02-26 19:58:09

()上的jQuery可以在这方面为您提供帮助。首先,您需要分离附加到元素ID的数据,如btn+btnNumber。您可以在任何data-x属性(如data-custom-info )中添加自定义信息,并使用jQuery attr('data-custom-info')语法检索信息。使用on()方法注册的事件处理程序也可用于将来的元素(在脚本执行后创建的元素)。如下所示。

创建新按钮时,添加将其渲染为..

代码语言:javascript
运行
AI代码解释
复制
<input .... class="btnWithData" data-custom-info="1" ... />
<input .... class="btnWithData" data-custom-info="2" ... /> 

你的事件处理程序是这样的..

代码语言:javascript
运行
AI代码解释
复制
$(document).ready(function(){
 $('body').on('click','.btnWithData',function(){
//DO WHATEVER
var buttonData=$(this).attr('data-custom-info');
//DO WHATEVER
 });
});
票数 2
EN

Stack Overflow用户

发布于 2014-02-26 20:01:56

最好不要使用闭包,它们需要内存。取而代之的是依赖好的旧数据标记:

代码语言:javascript
运行
AI代码解释
复制
$(document).ready(function () {
  $("#wrapper").on("click", "btnNameAttr", function () {
    var n;

    n = $(this).data("number");
    // code goes here
  });
});

要区分#wrapper中实际单击的元素,可以使用data-number属性,如下所示:

代码语言:javascript
运行
AI代码解释
复制
<div id="wrapper">
  <img data-number="000" />
  <img data-number="001" />
  <img data-number="002" />
  <img data-number="003" />
</div>

通过使用包装<div>元素和data-number=""属性,这段代码将执行得更好,并且您仍然可以拥有您想要的所有功能。而且不会影响可能已经存在于这些元素上的classid属性。

您甚至可以将命令添加到标记中:

代码语言:javascript
运行
AI代码解释
复制
<img data-number="000" data-command="edit" />
<img data-number="000" data-command="show" />
<img data-number="000" data-command="delete" />

然后打开它:

代码语言:javascript
运行
AI代码解释
复制
switch ($(this).data("command"))
{
  case "edit":
    // edit element with number n here
    break;
}
票数 0
EN

Stack Overflow用户

发布于 2014-02-26 20:03:50

您应该像@Ananthan-Unni建议的那样,使用jQuery.on()方法分配委托事件侦听器,但格式如下:

代码语言:javascript
运行
AI代码解释
复制
$.on('click', 'button', listener)    

在这种情况下,您不需要分配唯一的ids或属性。您可以使用标记名或类名作为选择器(第二个参数)。

请看这里:https://api.jquery.com/on/,并阅读delegated events

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22051813

复制
相关文章
Kubernetes扩展容器架构的7 个工具
Kubernetes是最初由Google开发的容器编排工具,已成为敏捷和DevOps团队的重要资源。作为一个开源工具,Kubernetes本身正在成为一个生态系统,正在开发其他工具来支持它。其中一些扩展直接来自Kubernetes,而其他扩展项本身就是开源项目。
February
2018/11/30
6540
使用Kubernetes和容器扩展Spinnaker
Kubernetes和容器完全改变了我们对完成工作所使用的工具的看法。扩展自动化平台需要通过fork开发定制扩展,并决定是否应该贡献上游的日子已经一去不复返了。对于大多数组织来说,是否使用平台或工具的选择取决于它的可扩展性。
CNCF
2019/12/04
1.6K0
使用Kubernetes和容器扩展Spinnaker
kubernetes学习记录(14)——使用CustomResourceDefinitions(CRD)扩展Kubernetes API
目前我们的kubernetes集群版本为1.15.0,故参考文档为官方文档《Extend the Kubernetes API with CustomResourceDefinitions》
胡了了
2020/02/13
1.6K0
使用CSI和Kubernetes动态扩展存储卷
Kubernetes本身有一个非常强大的存储子系统,涵盖了相当广泛的用例。然而,当计划使用Kubernetes构建产品级关系型数据库平台时,我们面临一个巨大的挑战:存储。 本文介绍如何扩展最新的Container Storage Interface 0.2.0并与Kubernetes集成,演示动态扩展存储卷容量的基本。
CNCF
2019/12/05
1.1K0
kubernetes实现基于cpu使用的自动扩展
在Kubernetes中,自动扩展是通过Horizontal Pod Autoscaler(HPA)实现的。HPA可以自动调整Pod的副本数,以确保应用程序的负载得到满足。HPA基于CPU使用率指标进行自动扩展,可以根据应用程序的负载动态调整Pod的副本数,从而确保应用程序的高可用性和性能。
堕落飞鸟
2023/03/30
5300
Kubernetes 中 Descheduler 组件的使用与扩展
实例在新建时,调度器可以根据当时集群状态选择最优节点进行调度,但集群内资源使用状况是动态变化的,集群在一段时间内就会出现不均衡的状态,需要 Descheduler 将节点上已经运行的 pods 迁移到其他节点,使集群内资源分布达到一个比较均衡的状态。有以下几个原因我们希望将节点上运行的实例迁移到其他节点:
田飞雨
2022/09/02
1.1K0
Kubernetes 中 Descheduler 组件的使用与扩展
扩展 Kubernetes 之 CRI
使用 cri-containerd 的调用流程更为简洁, 省去了上面的调用流程的 1,2 两步
王磊-字节跳动
2020/02/03
4.6K0
扩展 Kubernetes 之 Scheduler
由于当前的主流扩展方式 Webhook(Scheduler Extender)方式有一些限制:
王磊-字节跳动
2020/02/08
5.9K1
扩展 Kubernetes 之 CNI
> 扩展 kubernetes 分为三种模式 webhook,binary 二进制,controller
王磊-字节跳动
2020/02/02
3.4K1
kubernetes 架构
不要想着我咋反复横跳,一会儿 mesh简介一会儿又跑回 docker,然后又 istio 简介又跑回 kubernetes 架构。看上面。
看、未来
2022/06/02
2210
kubernetes 架构
通过Shared Informer扩展Kubernetes
Kubernetes运行一组控制器,使资源的当前状态与所需的状态保持匹配。可以是一个Pod,服务或任何可以通过Kubernetes控制的东西。K8s的核心价值是可扩展性,允许操作器和应用程序扩展其功能集。基于事件的体系结构,其中所有重要的东西都转换成事件,可以触发自定义代码。
CNCF
2019/12/04
2.1K0
扩展 Kubernetes 之 Kubectl Plugin
kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章
闻说社
2022/07/14
3190
使用 MicroK8s 和 OpenEBS 扩展 Kubernetes 存储
OpenEBS 由 CloudByte 研发,这是一家专业做容器化存储的公司,OpenEBS 是其一款开源产品,CloudByte 将其在企业级容器存储的经验付诸到该项目中。这个项目的愿景也很简单,就是让需要持久化存储的工作负载中的存储服务能够直接集成在环境中,存储服务可以自动管理,将存储的细节隐藏起来,就像存储系统是另一套基础架构一样。
张善友
2022/05/14
5660
Kubernetes架构解析
一个 Kubernetes 集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点。
mikelLam
2022/08/12
7950
扩展 Kubernetes 之 FlexVolume And CSI
kubernetes 的 volume 解决的 存储 state 的问题。State 有很多种存储方式,kubernetes 只关注其中的一部分
王磊-字节跳动
2020/02/04
4.4K0
扩展 Kubernetes 之 Kubectl Plugin
kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章
王磊-字节跳动
2020/02/05
2.6K0
Kubernetes架构简介
在Docker容器技术中,通过容器,我们可以很方便的将我们的应用程序打成一个镜像,然后无论我们在哪部署应用,只要这个环境支持Docker,那么我们都可以通过Docker将我们的镜像运行起来,而不需要关心环境的问题。这一点真正做到了 "一次打包,到处运行" 的效果。正是因为有了容器技术,我们可以不再理会应用的运行环境依赖问题,这也给微服务架构的实现带来了极大的便利。
后场技术
2020/09/03
7010
Kubernetes架构简介
谈谈 Kubernetes 架构
这个架构图看起来会比较复杂,很难看懂,我把这个官方的架构图重新简化了一下,就会非常容易理解了:
kubernetes中文社区
2019/07/28
9570
kubernetes架构概述
Kubernetes 是一款流行的容器编排系统,可以轻松地管理多个容器化应用程序和服务。Kubernetes 架构是分层和分布式的,具有多个组件和节点。
玖叁叁
2023/04/28
2410
谈谈 Kubernetes 架构
这个架构图看起来会比较复杂,很难看懂,我把这个官方的架构图重新简化了一下,就会非常容易理解了:
iMike
2019/07/10
7460

相似问题

初始化扩展时的pg_cron架构

16

Kubernetes Cron作业调用

11

Kubernetes cron作业oomkilled

228

Kubernetes架构:主节点

10

最佳Kubernetes Nginx架构

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文