因此,在特定页面上,我有一些表单元素,在3到8之间,具体取决于用户及其在页面上的操作.
如何在页面上动态地向所有表单元素添加特定的onblur事件?
如果我有:
function doThisOnBlur() { stuff }
Run Code Online (Sandbox Code Playgroud)
一旦页面加载,如何将相同的功能添加到所有这些功能.页面加载后不会创建任何元素,但可能会为不同的用户显示不同的元素.
<input type="text" id="x">
<input type="text" id="y">
<select id="z">...</select>
Run Code Online (Sandbox Code Playgroud)
那可能吗?
Nic*_*ver 15
编辑:对于更新的问题
使用.blur()和匿名函数(无论有多少元素):
$(":input").blur(function() {
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
如果你需要将某些函数绑定到某些字段,请在名称上使用类或属性选择器,区分它们的任何东西......如果选择器没有找到元素,它就不会将事件处理程序绑定到任何东西.这样,相同的整体代码适用于所有用户,即使他们只看到一些可用的表单元素.
对于原始问题:如果在页面加载后动态添加元素.
我认为.live()捕获blur事件就是你在这里使用的事件,:input用作选择器:
$(":input").live('blur', function() {
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
没有jQuery:
function doThisOnBlur(){
// your fancy code
}
var inputs = document.getElementsByTagName('input');
var selects = document.getElementsByTagName('select');
for (var i = 0; i < inputs.length; i++)
inputs[i].onblur = doThisOnBlur;
for (var i = 0; i < selects.length; i++)
selects[i].onblur = doThisOnBlur;
Run Code Online (Sandbox Code Playgroud)
我尽可能地做到最简单.我会重构它并且不以这种方式分配事件处理程序,但我指出回答你的问题.
| 归档时间: |
|
| 查看次数: |
17730 次 |
| 最近记录: |