2016-01-05 48 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

相關問題