Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';我的jQuery不能用于通过ajax加载的元素吗?_Javascript_Jquery_Ajax_Jsp_Servlets - Fatal编程技术网

Javascript 为什么';我的jQuery不能用于通过ajax加载的元素吗?

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="

我有一个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="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();
 });