Javascript 为什么';我的jQuery不能用于通过ajax加载的元素吗?
我有一个jsp页面,其中包含一个包含以下元素的表单:Javascript 为什么';我的jQuery不能用于通过ajax加载的元素吗?,javascript,jquery,ajax,jsp,servlets,Javascript,Jquery,Ajax,Jsp,Servlets,我有一个jsp页面,其中包含一个包含以下元素的表单: <form class="form-inline" role="form" action="CadsInsertion" method="POST"> <div id="formItems" class="form-group"> <input type="text" id="date" name="date" placeholder="Date"><label class="
<form class="form-inline" role="form" action="CadsInsertion" method="POST">
<div id="formItems" class="form-group">
<input type="text" id="date" name="date" placeholder="Date"><label class="btn btn-danger" id="_date">-</label>
</div>
<div class="col-lg-6 col-lg-offset-3">
<button id="submit" type="submit" class="btn btn-warning btn-lg">Submit</button>
</div>
</form>
我在servlet中主要做的是处理来自ajax调用的数据,并相应地编写一些jsp元素。为了简单起见,我将省略Servlet实现,直接跳到输出
执行ajax代码后,新元素添加到formItems
部分:
<input id="Image" type="text" placeholder="Image" name="Image">
<label id="_Image" class="btn btn-danger">-</label>
<br>
<input id="Format" type="text" placeholder="Format" name="Format">
<label id="_Format" class="btn btn-danger">-</label>
<br>
<input id="Type" type="text" placeholder="Type" name="Type">
<label id="_Type" class="btn btn-danger">-</label>
但这只适用于我的页面中已经静态定义的元素,而不适用于使用ajax加载的元素。为什么会这样?使用
使用
使用
使用
添加元素后,需要将处理程序重新绑定到该元素,或者使用jQuery的on()函数 您需要找到页面中最近的静态祖先元素(另请参见“”)。这仅仅意味着,绑定事件处理程序的元素在绑定处理程序时必须已经存在,因此对于动态生成的元素,必须允许事件冒泡并进一步处理它 用这个
// instead of document you can use any parent element selector which is static(does not appended)
$(document).on("click","label",(function(e) {
var item = e.target.id;
item = item.replace("_", "");
$("#" + item).remove();
e.target.remove();
});
添加元素后,需要将处理程序重新绑定到该元素,或者使用jQuery的on()函数 您需要找到页面中最近的静态祖先元素(另请参见“”)。这仅仅意味着,绑定事件处理程序的元素在绑定处理程序时必须已经存在,因此对于动态生成的元素,必须允许事件冒泡并进一步处理它 用这个
// instead of document you can use any parent element selector which is static(does not appended)
$(document).on("click","label",(function(e) {
var item = e.target.id;
item = item.replace("_", "");
$("#" + item).remove();
e.target.remove();
});
添加元素后,需要将处理程序重新绑定到该元素,或者使用jQuery的on()函数 您需要找到页面中最近的静态祖先元素(另请参见“”)。这仅仅意味着,绑定事件处理程序的元素在绑定处理程序时必须已经存在,因此对于动态生成的元素,必须允许事件冒泡并进一步处理它 用这个
// instead of document you can use any parent element selector which is static(does not appended)
$(document).on("click","label",(function(e) {
var item = e.target.id;
item = item.replace("_", "");
$("#" + item).remove();
e.target.remove();
});
添加元素后,需要将处理程序重新绑定到该元素,或者使用jQuery的on()函数 您需要找到页面中最近的静态祖先元素(另请参见“”)。这仅仅意味着,绑定事件处理程序的元素在绑定处理程序时必须已经存在,因此对于动态生成的元素,必须允许事件冒泡并进一步处理它 用这个
// instead of document you can use any parent element selector which is static(does not appended)
$(document).on("click","label",(function(e) {
var item = e.target.id;
item = item.replace("_", "");
$("#" + item).remove();
e.target.remove();
});
因为当您的代码执行时,没有可绑定事件的元素,所以您必须在整个文档上绑定事件并向其添加筛选器。在我们的示例中,您不需要使用
文档
,这没有意义,您可以使用作为父级#formItems
,因为此项最初位于页面上……是的,您是对的,我在评论中提到,您可以使用页面上存在的任何父级元素。感谢您的解释+1因为代码执行时没有可绑定事件的元素,所以您必须在整个文档上绑定事件并向其添加筛选器。在我们的示例中,您不需要使用文档
,这是没有意义的,您可以使用作为父级#formItems
,因为此项最初位于页面上……是的,您是对的,我在评论中提到,您可以使用页面上存在的任何父级元素。感谢您的解释+1因为代码执行时没有可绑定事件的元素,所以您必须在整个文档上绑定事件并向其添加筛选器。在我们的示例中,您不需要使用文档
,这是没有意义的,您可以使用作为父级#formItems
,因为此项最初位于页面上……是的,您是对的,我在评论中提到,您可以使用页面上存在的任何父级元素。感谢您的解释+1因为代码执行时没有可绑定事件的元素,所以您必须在整个文档上绑定事件并向其添加筛选器。在我们的示例中,您不需要使用文档
,这是没有意义的,您可以使用作为父级#formItems
,因为此项最初位于页面上……是的,您是对的,我在评论中提到,您可以使用页面上存在的任何父级元素。感谢您的解释+1您正在使用哪个版本的jquery?您正在使用哪个版本的jquery?您正在使用哪个版本的jquery?您正在使用哪个版本的jquery?请添加一些说明。请添加一些说明。请添加一些说明。请添加一些说明。请添加一些说明。请添加一些说明。
$(".form-inline").on('click', 'label', function(e) {
var item = e.target.id;
item = item.replace("_", "");
$("#" + item).remove();
e.target.remove();
});