jQuery - 查找没有事件的动态创建的元素

时间:2015-10-10 21:34:05

标签: javascript jquery html ajax dynamically-generated

之前已经问过这个问题,答案是这样的:

$('#container').on('click','#dynamicElement', function(){ /* the code */ });

上面的代码会在点击时找到#dynamicElement。 但是,如果没有点击,也没有任何其他事件呢?

假设以下情形:

$.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?
         */
    }
);

2 个答案:

答案 0 :(得分:3)

如果要将新元素添加到success回调中的页面, 此时,您可以拨打$('#dynamicElement')

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

答案 1 :(得分:0)

事件绑定的工作原理只要该元素在DOM本身中,您就可以通过

访问它
$('#dynamicElement)

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

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

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