首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery不处理jQuery创建的元素

jQuery不处理jQuery创建的元素
EN

Stack Overflow用户
提问于 2013-04-20 03:17:52
回答 4查看 473关注 0票数 1

我正在通过每秒调用ajax将列表项动态添加到jQuery中的列表中。

下面是ajax调用的代码。

代码语言:javascript
运行
复制
$.ajax({
    url: 'php/update_group_list.php',
    data: '', 
    dataType: 'json',
    success: function(data) {
        var id = data.instructor_id;
            group_cnt = data.group_cnt,
            group_name = data.group_name,
            group_code = data.group_code;

            for (i = current_row; i < group_cnt; i++)
            {
                //setInterval(function() { $('#group-list-div').load('php/group_list.php'); }, 5000);

                $('#group-list').append("<li><a href='#' data-role='button' class='view-group-btns' id='"+group_code[i]+"' value='"+id+"' text='"+group_name[i]+"'>"+group_name[i]+"</a></li>");
                $('#delete-group-list').append("<fieldset data-role='controlgroup data-iconpos='right'>" +
                                                    "<input id='"+group_code[i]+i+"' value='"+group_code[i]+"' type='checkbox' name='groups[]'>" +
                                                    "<label for='"+group_code[i]+i+"'>"+group_name[i]+"</label>" +
                                                "</fieldset>");
            }

            current_row = i; 

            $('#group-list').listview('refresh');
            $('#delete-group-list').trigger('create');
    }
});

现在我有两个问题

第一个问题:

当我试图运行下面的代码(如果在上面代码中的$('#group- list ').blah...blah中创建了任何列表项,它应该显示一个警告框),什么都不会发生。

代码语言:javascript
运行
复制
$(".view-group-btns").click(function() 
{
    alert("check");
});

第二个问题:

此外,当我试图发送复选框的表单数据(在上面的ajax调用代码中引用$('#delete-group-list').blah...blah )时,post返回错误意外令牌<

我做错了什么?我认为这两个问题是相关的,因为我正在创建动态使用的列表项。

下面是与第二个问题相关的额外代码

HTML:

代码语言:javascript
运行
复制
<form id='delete-group-form' action='php/delete_groups.php' method='post'>
    <h3 style='text-align: center;'>Check the Box Beside the Groups you Would Like to Delete </h3>
    <div style='margin-top: 20px;'></div>
        <div id='delete-group-list'>
        </div>
    <div style='margin-top: 20px;'></div>
    <input type='submit' id='delete-groups-btn' data-theme='b' value='Delete Groups(s)'>                    
</form>

JS码

代码语言:javascript
运行
复制
$('#delete-group-form').submit(function(e) 
{
    e.preventDefault();

    alert($('#delete-group-form').serialize());

    if ($('#delete-group-form').serialize() == "") 
    {
        alert('No groups selected to be deleted.')
        return false;
    }
    else 
        if ($('#delete-groups-form').serialize() == null) 
        {
            alert('No groups selected to be deleted.')
            return false;
        } 
        else 
        {
            $.post('php/delete_groups.php',$('#delete-groups-form').serialize()).done(function(data) 
            {
                obj = jQuery.parseJSON(data);


                var group_codes = obj.group_list;

                alert(group_codes);

                alert("The selected groups have been deleted");
                window.setTimeout(2000);
                return false;
            });
        }
    return false;
});

delete_groups.php

代码语言:javascript
运行
复制
<?php 
    $group_codes = $_POST['groups'];    
    $items = array('group_list'=>$group_codes); //creating an array of data to be sent back to js file
    echo json_encode($items); //sending data back through json encoding
?>

我认为第二个问题的根源是行$group_codes =$POST‘’groups‘;特别是$_POST’‘groups’,因为当我用$group_codes =‘test’代替它时(只是为了调试目的),代码就像预期的那样工作。

EN

Stack Overflow用户

发布于 2013-04-20 03:32:31

在从ajax调用中获得元素之后,必须绑定click函数。对pageLoad事件的绑定只会绑定到已经存在于dom中的元素。所以做这样的事。

代码语言:javascript
运行
复制
$.ajax({
success : function(res){
//bind your click function after you update your html dom.
}
})
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16116173

复制
相关文章

相似问题

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