Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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无法选择动态创建的html元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript JQuery无法选择动态创建的html元素

Javascript JQuery无法选择动态创建的html元素,javascript,jquery,html,Javascript,Jquery,Html,我使用java脚本createElement创建Html元素,但是我不能在JQuery-$p.onclick,函数{}中选择任何Html元素。但它对$document有效。我的JQuery脚本位于html页面正文的末尾。但是,当在页面创建后在浏览器中选中inspect元素时,html元素位于脚本下方 我见过许多其他类似的问题,但没有一个有效。请帮助我解决这个问题,我已经为此工作了几天,它不会带我去任何地方。对于动态创建的元素,请使用: $(document).on('click', 'p', f

我使用java脚本createElement创建Html元素,但是我不能在JQuery-$p.onclick,函数{}中选择任何Html元素。但它对$document有效。我的JQuery脚本位于html页面正文的末尾。但是,当在页面创建后在浏览器中选中inspect元素时,html元素位于脚本下方


我见过许多其他类似的问题,但没有一个有效。请帮助我解决这个问题,我已经为此工作了几天,它不会带我去任何地方。

对于动态创建的元素,请使用:

$(document).on('click', 'p', function(){
    console.log("clicked");
});
,显示在创建元素之前分配单击事件。

使用live而不是on

编辑:

不推荐使用live,我们可以在上使用,但可以从电子文档而不是元素中使用

使用:

$document.on'click','someClass',doSomething;

而不是:

$'.someClassParent'。在“单击”时,'.someClass',doSomething;

我尝试了很多次动态生成的内容,但在not work live works上:这并不是真正的问题-在后一个版本中,live已经从jQuery核心中删除,并且不应该使用,因为它已被弃用。与live直接等价的一种方法是使用子代选择器作为MrCode应答的on变量。Ref:听起来你当时使用的是一个非常旧的版本,之前。on已经实现。是的,我想这是我使用旧版本的情况。据我所知,我们可以使用$document.on代替$p.on,我们可以从文档而不是从元素开始工作。是的,没错。后者对DOM中尚未创建的元素不起作用。非常感谢,它起作用了。我不敢相信我为此花了这么多时间。再次感谢。
$("p").live("click",function(){}