我有一些代码,我循环遍历页面上的所有选择框,并将.hover事件绑定到它们,以便在它们的宽度上做一些麻烦mouse on/off.
这发生在页面准备就绪并且工作得很好.
我遇到的问题是,我在初始循环后通过Ajax或DOM添加的任何选择框都不会受到事件限制.
我找到了这个插件(jQuery Live Query Plugin),但在我用插件添加另外5k到我的页面之前,我想知道是否有人知道这样做的方法,无论是直接使用jQuery还是通过其他选项.
以下代码有什么区别吗?
$('#whatever').on('click', function() {
/* your code here */
});
Run Code Online (Sandbox Code Playgroud)
和
$('#whatever').click(function() {
/* your code here */
});
Run Code Online (Sandbox Code Playgroud) 我有一个<div>使用id="modal"jQuery load()方法动态生成的:
$('#modal').load('handlers/word.edit.php');
Run Code Online (Sandbox Code Playgroud)
word.edit.php包含一些输入元素,它们被加载到一个模态中<div>.
使用jQuery的keyup方法我可以在事件触发后捕获输入值,但是当元素被动态添加到模态div时,当用户输入文本时,事件不会激活.
哪个jQuery方法支持处理由动态创建的元素触发的事件?
用于创建新输入元素的代码是:
$('#add').click(function() {
$('<input id="'+i+'" type="text" name="translations' + i + '" />')
.appendTo('#modal');
Run Code Online (Sandbox Code Playgroud)
捕获用户值的代码是:
$('input').keyup(function() {
handler = $(this).val();
name = $(this).attr('name');
Run Code Online (Sandbox Code Playgroud)
第二个代码块似乎适用于原始元素,但新动态生成的元素不会触发它.