Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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-查找动态创建的元素而不包含事件_Javascript_Jquery_Html_Ajax_Dynamically Generated - Fatal编程技术网

Javascript jQuery-查找动态创建的元素而不包含事件

Javascript jQuery-查找动态创建的元素而不包含事件,javascript,jquery,html,ajax,dynamically-generated,Javascript,Jquery,Html,Ajax,Dynamically Generated,这个问题以前被问过,答案是: $('#container').on('click','#dynamicElement', function(){ /* the code */ }); 上面的代码将在单击时找到#dynamicacelement。 但如果没有点击,也没有任何其他事件呢 假设以下场景: $.ajax( url:'file.php', data: {'param':'value'}, success: function(response){

这个问题以前被问过,答案是:

$('#container').on('click','#dynamicElement', function(){ /* the code */ });
上面的代码将在单击时找到
#dynamicacelement
。 但如果没有点击,也没有任何其他事件呢

假设以下场景:

$.ajax(
    url:'file.php',
    data: {'param':'value'},
    success: function(response){
         /*
         how would I get #dynamicElement if it was not click on?
         the element had no event fired at all, nor had any of its parennt
         containers.

          Now what?
         */
    }
);

如果将新元素添加到
success
回调中的页面, 此时,您可以调用
$(“#dynamicacelement”)


在回调之外的任何地方使用
$(“#dynamiccelement”)
都不会返回该元素,因为它尚未添加到DOM中。

事件绑定的工作原理是只要该元素位于DOM中,就可以通过

$('#dynamicElement)
需要事件委派的原因是在绑定事件后动态创建元素时。然后,当事件被触发时,它会查看绑定到的元素的所有子元素,以查找是否有任何元素与选择器匹配

但是,如果您知道元素已经附加到DOM中,则可以直接绑定它,而无需事件委派,并通过按ID查找来访问它


如果还没有,您就无法操作它,因为它还不存在。

看起来您希望使用普通的jquery选择器
$(“#dynamiccelement”)
来获取成功回调中的元素,我想这和
$(“#dynamiccelement”)一样简单。
,我一直避免这样做,好像我知道那是行不通的谢谢。想解释一下为什么会这样吗?我假设正在将
#dynamiccelement
添加到success函数的页面中。基本上可以归结为这样一个事实:一旦元素存在于DOM中,就需要查询它。