【问题标题】:jQuery dialog serving multiple button's click event handllerjQuery 对话框服务多个按钮单击事件处理程序
【发布时间】:2010-10-07 02:55:42
【问题描述】:
我有一个场景......
1.) 已经创建了一个带有下拉列表的 div 和确定,取消按钮
2.) 在文档准备就绪时 - 将步骤 1 中创建的 div 注册到 jQuery 对话框中
3.) 在 javascript 按钮上单击 - 我正在打开此对话框。
4.)现在,问题是 - 我创建的 jQuery 对话框需要在同一页面上的其他按钮点击中使用。现在,我的 div(这是在运行时使用 jQuery 的对话框)ok 按钮单击已经与 javascript 函数(button1 click)相关联,我无法将其他按钮的单击事件与它关联 - 因此卡在这里并且没有任何线索或点击解决这个问题。
之前有人在asp.net,jquery中遇到过这个问题吗?有人可以提供指导吗?
【问题讨论】:
标签:
asp.net
jquery
button
dialog
click
【解决方案1】:
为什么不能关联另一个事件?
按钮会有不同的 id。是吗?
$('#button1').click(function() {
alert('调用了按钮 1 .click() 的处理程序。');
});
$('#button2').click(function() {
alert('调用了按钮 2 .click() 的处理程序。');
});
在你的情况下这是不可能的吗?
【解决方案2】:
选项:
1) 在函数打开 div 时解除点击处理程序的关联,然后在打开 div 的函数中将点击处理程序关联到按钮。
2) 创建多个按钮,将它们全部隐藏,将点击处理程序与您想要的每个按钮相关联。当 div 打开时,请检查哪个按钮切换为可见。
3) 不创建按钮,但具有动态创建按钮的功能。当 div 打开时,通过调用函数并传入一个代码来为该 div 创建按钮,告诉它要打开哪个按钮以及与单击处理程序关联的内容(这可以存储在一个数组中,传入的所有内容是钥匙)。
根据应用程序,我使用了所有这些方法。最后一个可以有一个转折,允许它调用基于 ajax 服务器的应用程序来获取按钮文本和功能(存储在数据库中),这使您不必加载带有按钮数据的数组,并且还允许更容易扩展应用程序。