2016-01-05 29 views
0

不知道我的标题是否解释了我想要做的很好,但是是否有可能检索jquery选择定义的对象,包括页面出现时DOM中不存在的任何定义加载,以便我可以调用该对象或再次阅读它的属性,如果需要?包含所有元素定义的jquery对象

<div id="div1"> 
    <div id="div3"> 

    $('#div1').on('click',function(){ 
     do something... 
    }) 

    $('#div2').on('click',function(){ 
     do something... 
    }).css('background','red').data('xxx','yyy').attr({class:'myclass'}) 

    $('#div3').on('click',function(){ 
     do something... 
    }) 

    setTimeout(function(){ 
     console.log(jqueryArray['#div2].onClick) 
     console.log(jqueryArray['#div2].attr()) 
     console.log(jqueryArray['#div2].css()) 
    },2000) 

在这个例子中,div 1和3存在,但div2在页面加载时不存在。

是否有一个内部的jquery数组或对象,其中包含加载页面过程中可以在页面加载后访问过程中分析的所有选择器?

+0

在运行时div2不存在的情况下,您对css,data和attr的设置将不会执行任何操作。现在还不存在。在你的事件处理函数中,你可以看到是否使用上下文化的$(this).css('background'),$(this).data('xxx'),$(this).attr('class ') – Taplar

回答

3

您正在寻找一位代表。

$(parentSelector).on(event, childSelector, eventHandler); 

这个函数非常像普通的事件处理程序,除了它绑定到已存在的父元素外。来自孩子的事件冒泡,父母评估孩子选择器,看他们是否匹配。如果是这样,它就会对它应用处理程序。

由于它是冒泡事件的作用,它并不在乎什么时候创建孩子。只是它获取事件。

+0

谢谢,但它不仅仅是我正在寻找的事件是元素的所有属性和属性。我已经更新了一些额外的属性的原始帖子。 – crankshaft

+0

呃,我相信有$ ._ data(DOM元素,“事件”)或者什么可以让你看到jquery为一个元素注册的事件。除了“事件”以外,可能还有一些其他键可以使用,但更多的是用于调试。不是生产代码。 – Taplar

相关问题