如何在动态更改的按钮上触发事件
How to trigger an event on a dynamically changing button?
我有一个按钮可以动态更改id
(main-btn-0
到main-btn-3
)。我希望它在单击时触发对另一个对应于test-btn-X
id的按钮的单击。
所以我这里总共有 5 个按钮。一个动态更改id
的"主"按钮,以及 4 个 id test-btn-0
到 test-btn-3
的按钮。
因此,当主按钮的 id 为 main-btn-0
时,它应该触发对 test-btn-0
的点击,main-btn-1
触发test-btn-1
,依此类推。
这是我到目前为止尝试过的,但没有奏效:
$(document).on('click', '#main-btn-0', function(){
$('#test-btn-0').click();
});
$(document).on('click', '#main-btn-1', function(){
$('#test-btn-1').click();
});
$(document).on('click', '#main-btn-2', function(){
$('#test-btn-2').click();
});
$(document).on('click', '#main-btn-3', function(){
$('#test-btn-3').click();
});
我在这里错过了什么?
另外,有没有办法只拥有 1 个函数而不是 4 个函数?
谢谢。
你可以给按钮一个类"main-btn",然后给一个数据ID"1","2"等。
<button class="main-btn" data-id="1">main 1</button>
那么代码将是这样的:
$(document).on('click',".main-btn",function(){
$(".test-btn-" + $(this).data("id")).click();
})
这是它的测试:http://jsfiddle.net/xyn4k784/
ids 更改的事实不是问题,只要您在 dom 准备就绪时知道它们是什么:在这种情况下,您可以为 Click 事件安装事件侦听器,然后在函数内部检查单击按钮时的实际 ID。
要读取 ID,您必须使用 attr:
$(this).attr("id");
相反,如果您希望能够随时选择按钮,则可以使用不同的方法来查找它们,毕竟id只是最微不足道的选择器,但到目前为止不是唯一的选择器。
例如,您可以为每个它们中的每一个提供一个特定的类。一旦我检查了 css 选择器的规范,我将添加另外几个。
编辑:例如$('*[id|=main]')
应该匹配id以"main"开头后跟"-"的任何元素。
相关文章:
- Asp.net按钮事件点击不做回发.有可能吗
- plupload智能手机和平板电脑浏览按钮事件未启动
- 如何使用C#为特定按钮事件调用JavaScript方法
- jQuery UI可排序,释放鼠标按钮事件
- jQuery按钮事件处理程序没有't更改内容
- 未调用按钮事件
- 如何将按钮事件与唯一控件关联
- 如何在不加载页面的情况下创建按钮事件
- 用于更改 HTML 表单中的输入文本的 Javascript 按钮事件
- 引导模式的自定义按钮事件多次显示
- 科尔多瓦 iOS 按钮事件
- 英特尔 XDK 音量按钮事件
- 删除按钮事件的操作并创建另一个事件
- 单选按钮事件未触发
- 突出显示如何在单击重置缩放按钮事件中捕获和插入逻辑
- jQuery 自动填充选择:“按钮事件”
- 客户端模板按钮事件未触发
- 如何通过Chrome扩展程序检测按钮事件
- 从点击按钮事件原型或 jQuery 发布复选框数组
- Javascript 后退按钮事件侦听器覆盖 android 设备后退按钮