2015-10-16 63 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