我有一个<div>
用id="modal"
jQuery load()
方法动态生成的with :
$('#modal').load('handlers/word.edit.php');
word.edit.php
包含一些输入元素,它们被加载到modal中<div>
。
使用jQuery的keyup
方法,我可以在事件触发后捕获输入值,但是当将元素动态添加到模式div时,当用户输入文本时事件不会触发。
哪种jQuery方法支持处理由动态创建的元素触发的事件?
用于创建新输入元素的代码为:
$('#add').click(function() {
$('<input id="'+i+'" type="text" name="translations' + i + '" />')
.appendTo('#modal');
捕获用户值的代码是:
$('input').keyup(function() {
handler = $(this).val();
name = $(this).attr('name');
第二个代码块似乎适用于原始元素,但不会由新的动态生成的元素触发。
你需要将事件委托给页面内最接近的静态祖先元素。这只是意味着,绑定事件处理程序的元素在绑定处理程序时必须已经存在,因此对于动态生成的元素,你必须允许事件冒泡并进一步处理。
jQuery .on
方法是执行此操作的方法(或.delegate
对于较旧版本的jQuery。)
// If version 1.7 or above
$('#modal').on('keyup', 'input', function() {
handler = $(this).val();
name = $(this).attr('name');
});
或旧版本
// If version 1.6 or below
// note the selector and event are in a different order than above
$('#modal').delegate('input', 'keyup', function()
{
handler = $(this).val();
name = $(this).attr('name');
});
问题内容: 有什么方法可以获取触发事件的元素的ID? 我在想类似的东西: 当然,如果从第一种形式触发事件,则var 应该包含id ;如果从第二种形式触发事件,则var 应该包含id 。 问题答案: 在jQuery中,始终指触发事件的元素,其中传递给函数的参数在哪里。 还请注意,这也将起作用,但它不是jQuery对象,因此,如果您希望在其上使用jQuery函数,则必须将其称为,例如:
事件 事件,就是文档与浏览器发生特定的 交互瞬间。JavaScript与HTML之间的交互就是通过事件实现的。 事件流 所谓事件流,就是接收页面事件的顺序。 事件流分 事件冒泡流 与 事件捕获流。事件冒泡流是IE开发团队提出的,捕获流是Netscape开发团队提出的。 事件冒泡流 所谓事件冒泡,就是事件开始时由 最具体的元素(文档中嵌套最深的那个 节点)接收,然后逐级向上传播到较为不具体的节点(文
我的react中有一个滚动的事件处理程序,我正试图使它成为被动的。但它不起作用,我在控制台中不断收到以下警告: 将事件处理程序标记为“被动”以使页面更加响应。 下面是我阅读事件的地方: 这是我的EventContainer中的函数。js文件: 在这一行: {被动:被动} 我得到以下错误在我的编辑器: 参数类型{passive:boolean}不可分配给参数类型boolean 有人知道我做错了什么吗
本文向大家介绍详解JavaScript中的事件流和事件处理程序,包括了详解JavaScript中的事件流和事件处理程序的使用技巧和注意事项,需要的朋友参考一下 事件流:分两种,IE的是 事件冒泡流 ,事件开始时从最具体的元素接收,逐级向上传播到较为不具体的节点(Element -> Document)。与之相反的是 Netscape 的 事件捕获流 。 DOM2级事件规定事件流包括三个阶段:事件捕
本文向大家介绍学习JavaScript事件流和事件处理程序,包括了学习JavaScript事件流和事件处理程序的使用技巧和注意事项,需要的朋友参考一下 本文全篇介绍了JavaScript事件流和事件处理程序,分享给大家供大家参考,具体内容如下 一、事件流 事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而Netscape Communicator的事件流是事件捕获流。 二、事件冒泡