动态添加到DOM时,jQuery buttonset无法正常工作

时间:2012-09-16 00:23:04

标签: jquery json dom append

我进行了一次AJAX调用,以JSON的形式获取一些数据,并且访问数据没有问题。因为我得到一个对象数组,我遍历它们并操纵我的DOM。以下代码显示了此迭代:

for (var key in data){
    reg_count++ ;
    attendee_markup += '<tr><td>' + data[key].student_num + '- ' + data[key].fname + ' ' + data[key].lname ;
    attendee_markup += '<td style="text-align: center;"><div class="ui-buttonset">' ;
    attendee_markup += '<input type="radio" id="ws' + data[key].reg_id + '-yes" name="' + data[key].reg_id + '" class="ui-helper-hidden-accessible" value="yes"><label for="ws' + data[key].reg_id + '-yes" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left" role="button"><span class="ui-button-text">Yes</span></label>' ;
    attendee_markup += '<input type="radio" id="ws' + data[key].reg_id + '-no" name="' + data[key].reg_id + '" class="ui-helper-hidden-accessible" value="no"><label for="ws' + data[key].reg_id + '-no" class="ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right" role="button"><span class="ui-button-text">No</span></label>' ;
    attendee_markup += '</div></td></tr>' ;
}

初始化我称之为$('.ui-buttonset').buttonset();

的按钮组

我正在使用'attendee_markup'和我后来附加到DOM的字符串。除按钮组外,一切都运行良好。它们显示为按钮组,但单击它们时没有任何反应。我发现Chrome控制台中没有任何错误。

1 个答案:

答案 0 :(得分:1)

在您的第3行代码中,最后会丢失</td>。这可能是搞乱你的逻辑的原因。您需要做的就是改变

attendee_markup += '<tr><td>' + data[key].student_num + '- ' + data[key].fname + ' ' + data[key].lname ;

attendee_markup += '<tr><td>' + data[key].student_num + '- ' + data[key].fname + ' ' + data[key].lname + '</td>';
                                                                                                          ^^^^^