jquery如何判断哪个按钮点击了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何判断哪个按钮点击了?相关的知识,希望对你有一定的参考价值。
参考技术A用jQuery去监听按钮是否被点击
jQuery是一个快速、简洁的javascript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化html文档操作、事件处理、动画设计和Ajax交互。
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器
UIButton:多个按钮 - 如何检测事件并找到点击了哪个按钮”
【中文标题】UIButton:多个按钮 - 如何检测事件并找到点击了哪个按钮”【英文标题】:UIButton: multiple buttons - how to detect event and find which button was tapped" 【发布时间】:2013-05-27 00:51:11 【问题描述】:如何检测哪个 UIButton 被点击:
-(void) topScorer
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 addTarget:self
action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button1 setTitle:@"Button1" forState:UIControlStateNormal];
button1.frame = CGRectMake(16, self.view.bounds.size.height*0.6, 60, 60);
UIImage *img1 = [UIImage imageNamed:@"img1.png"];
button1.layer.cornerRadius = 10;
button1.layer.masksToBounds = YES;
[button1 setImage:img1 forState:UIScrollViewDecelerationRateNormal];
button1.tag = 1;
[self.view addSubview:button1];
UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self
action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button2 setTitle:@"Button2" forState:UIControlStateNormal];
button2.frame = CGRectMake(92, self.view.bounds.size.height*0.6, 60, 60);
UIImage *img2 = [UIImage imageNamed:@"img2.png"];
button2.layer.cornerRadius = 10;
button2.layer.masksToBounds = YES;
[button2 setImage:img2 forState:UIScrollViewDecelerationRateNormal];
button2.tag = 2;
[self.view addSubview:button2];
-(void) buttonClicked: (id)sender
// How can I detect here which button is tapped?
// For Example, I want to do this:
// if button1 is pressed, do something
// if button 2 is pressed, do another thing
【问题讨论】:
【参考方案1】:将您的发件人转换为 UIButton 并比较标签值。
UIButton *button = (UIButton *)sender;
if (button.tag == 1)
else
【讨论】:
一如既往,完全忘记了类型转换:D,谢谢Jean 这是我通常这样做的方式,我要补充一点,您应该为标签创建一个枚举并将其与按钮标签进行比较 您可以将方法声明为:- (void)buttonClicked:(UIButton *)button
,而不是强制转换 id
参数 sender
。
嗨 rmaddy,我喜欢你的方法。这里的问题是我完全忘记了类型转换,它并没有出现在我的脑海中。所有,建议看起来很棒,谢谢大家。【参考方案2】:
将按钮存储在视图控制器的属性中,然后检查该属性:
@property (nonatomic, weak) UIButton *buttonOne;
- (void)buttonTapped:(id)sender
if (sender == buttonOne)
// button one was tapped
或者简单地为每个按钮分配不同的选择器。
[buttonOne addTarget:self
action:@selector(buttonOneTapped:)
forControlEvents:UIControlEventTouchUp];
[buttonTwo addTarget:self
action:@selector(buttonTwoTapped:)
forControlEvents:UIControlEventTouchUp];
【讨论】:
谢谢 Stepan,我才意识到我是如何忽略了类型转换的 :-)以上是关于jquery如何判断哪个按钮点击了?的主要内容,如果未能解决你的问题,请参考以下文章