2015-10-16 23 views
1

我不確定這裏要做什麼。 。 。我試圖不要問一個重複的問題,但搜索後我仍然卡住。jquery - 獲取以前用jquery創建的錨的ID WordPress的

我使用wordpress AJAX和2個函數背靠背。

第一個jQuery函數發出一個AJAX請求,它生成一個ul,每個li中有一個a。每個錨點獲得class="ajax-link",並獲得data-value="<?php echo $var; ?>

在FIRST的錨點li得到class="ajax-link thefirstcn"

後立即生成並寫入到頁面這份名單中,這個功能火災(還有比這更給它,但我縮短了它):

function select_on_load() { 
    var first = $(".thefirstcn").attr('data-value'); 

    alert(first); 
} 

無論我怎麼努力,都是我試圖獲取信息時獲取undefined。我試着將這個值賦給一個普通的「id」標籤,這也不起作用。

我敢肯定,這與元素剛剛創建的事實有關,我只需要知道如何去得到它! 再次感謝

+1

jQuery是隻知道在它運行的時間在頁面中的元素,添加到DOM使新的元素是無法識別由jQuery。爲了防止[事件委託](http://learn.jquery.com/events/event-delegation/)的使用,將新添加的項目中的事件冒泡到jQuery在頁面加載時運行時出現的DOM點。許多人使用'document'作爲捕捉冒泡事件的地方,但是沒有必要把它放在DOM樹上。理想情況下[你應該委託給頁面加載時存在的最近父母。](http://stackoverflow.com/a/12824698/1011527) –

回答

1

如果你有一些函數運行在加載$(document).ready ..你依靠拉你的id的實例,然後你修改dom使用ajax後它已經加載它不會選擇他們向上。

所以,你需要你修改DOM(打電話給你的AJAX)後調用這些功能都撕了你的$(document)。就緒或自我執行的功能,運行的onload,並把它放到一個名爲功能:

var myOnload = function(){ 
     ... your id fetching code here.. 
    } 

    $(document).ready(function() { 
     myOnload(); 
    }); 

然後使用ajax.complete方法再次裝入他們......

$.ajax(... 
    .done(function(data){ 
     ... 
    }) 
    .complete(function(){ 
     myOnload(); 
    }) 
    }); 
+0

謝謝你! – drumichael611