$(document).ready(function () {            GetParentFunObj('GetJSONData')({
                url: '/funcs/autocamera/data.ashx?opt=get',
                success: function (json) {
                    parent.PageLoading(false);
                    var vl = $("#SettingNameList");
                    var str = "<li><input type='radio' name='settingname' value='0' onclick='setNameId(this)'/><span>不选</span></li>";
                    for (var i = 0; i < json.length; i++) {
                        str = str + "<li><input type='radio' name='settingname' value='" + json[i].id + "' onclick='setNameId(this)'/><span>" + json[i].text + "</span></li>";
                        $(str).hover(function () {
                            $(this).addClass('colord5d5d5');
                        }, function () {
                            $(this).removeClass('colord5d5d5');
                        });
                    }
                    vl.html(str);
                    $.parser.parse();
                }
            });问题是现在怎样给动态添加的li渲染或添加jquery方法
这是我写的方法但是没有渲染到li上面$("#SettingNameList li").click(function () {
                $("#SettingNameList").find("radio").attr("checked", false);
                $(this).find("radio").attr("checked", true);
                $("#txtAutoCameraName").val($(this).find("span").html());
            });jQuery标签JSON函数

解决方案 »

  1.   

    用live方法或者添加到DOM中再绑定一次事件,最好不用live,效率不高。
                GetParentFunObj('GetJSONData')({
                    url: '/funcs/autocamera/data.ashx?opt=get',
                    success: function (json) {
                        parent.PageLoading(false);
                        var vl = $("#SettingNameList");
                        var str = "<li><input type='radio' name='settingname' value='0' onclick='setNameId(this)'/><span>不选</span></li>";
                        for (var i = 0; i < json.length; i++) {
                            str = str + "<li><input type='radio' name='settingname' value='" + json[i].id + "' onclick='setNameId(this)'/><span>" + json[i].text + "</span></li>";
                            $(str).hover(function () {
                                $(this).addClass('colord5d5d5');
                            }, function () {
                                $(this).removeClass('colord5d5d5');
                            });
                        }
                        vl.html(str);
    //////////////////////////////////
    $("#SettingNameList li").click(function () {
                    $("#SettingNameList").find("radio").attr("checked", false);
                    $(this).find("radio").attr("checked", true);
                    $("#txtAutoCameraName").val($(this).find("span").html());
                }); 
    //////////////////////////////////
                        $.parser.parse();
                    }
                });
      

  2.   

     $(str).hover(function () {
                                $(this).addClass('colord5d5d5');
                            }, function () {
                                $(this).removeClass('colord5d5d5');
                            });
                        }
                        vl.html(str);改为
     
                        vl.html(str);$(str).hover(function () {
                                $(this).addClass('colord5d5d5');
                            }, function () {
                                $(this).removeClass('colord5d5d5');
                            });
                        }
      

  3.   

    已经找到答案了谢谢2楼的  跟你说的一样的用live 但是在live里面红色区域的代买怎么不能执行!不能删除指定的标签
    $("a[name=delEffectiveTime]").live("click", function () {
                    debugger;
                    var HideDelbtn = $(this).parent("td").find("a[name=delEffectiveTime]");
                    if (HideDelbtn.length == 2)
                        $(this).parent("td").find("a[name=delEffectiveTime]").css({ display: "none" });
                    if (HideDelbtn.length > 1)
                        $(this).parent(".line").remove();
                });
      

  4.   

    parent是直接父元素,不包含祖先元素,包含祖先元素用parents  if (HideDelbtn.length > 1)
                        $(this).parents(".line").remove();