首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery ajax帮助

jquery ajax帮助
EN

Stack Overflow用户
提问于 2010-08-19 20:03:36
回答 2查看 97关注 0票数 1

我目前正在使用一些ajax,一个成功的ajax结果是一些更多的内容被动态地添加到页面。我的问题是它是动态添加的,看起来我不能将任何事件附加到添加的元素中。

发生的流程是,用户从下拉列表中选择一个选项,该选项的值被发送到一个php函数,然后该函数返回一些更多的HTML到页面,该页面被附加到页面的div。

我知道domReady上不存在的元素有问题,因为我运行了一个length()检查,它确认页面上不存在这些元素。

这样我就可以在第一个ajax请求成功返回后添加的HTML上运行click事件了吗?

代码语言:javascript
复制
$(document).ready(function() {

//customise the select menus
$('#customselector').SelectCustomizer();;

$('.career_select .selectitems').click(function(){
    var selectedCareer = $(this).attr('title');
    $.ajax({
        type: 'POST',
        url: '/roadmap/step_two',
        data: 'career_choice='+selectedCareer+"&ajax=true&submit_career=Next",
        success: function(html){
            $('.hfeed').append(html);
            $('#grade_choice').SelectCustomizer();
          }
    });
});

$('#grade_choice_options .selectitems').click(function(){
    var selectedGrade = $('#grade_choice_customselect').val();
    alert(selectedGrade);
})

});

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-19 20:06:04

使用live()而不是直接使用click():

代码语言:javascript
复制
$('.career_select .selectitems').live('click', function() { ....

live()实际上连接了任何与随后添加的元素匹配的新元素。

票数 4
EN

Stack Overflow用户

发布于 2010-08-19 20:12:26

尝试使用此插件:

http://brandonaaron.net/code/livequery/docs:Live Query通过绑定事件或自动触发匹配元素的回调来利用jQuery选择器的功能,即使在加载页面和更新DOM之后也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3521535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档