【发布时间】:2012-01-07 13:33:29
【问题描述】:
好的 - 我有一个函数,我调用它来动态添加一个单选按钮as per this question。这是完整的功能:
// function used to create a new radio button
function createNewRadioButton(
selector,
newRadioBtnId,
newRadioBtnName,
newRadioBtnText){
// create a new radio button using supplied parameters
var newRadioBtn = $('<input />').attr({
type: "radio", id: newRadioBtnId, name: newRadioBtnName
});
// create a new label and append the new radio button
var newLabel = $('<label />').append(newRadioBtn).append(newRadioBtnText);
// add the new radio button and refresh the buttonset
$(selector).append(newLabel).append('<br />').buttonset("refresh");
}
因此,如果我要使用以下代码调用上述函数,我希望在 div '#radioX' 中已包含的单选按钮下方添加另一个单选按钮(假设有一个 id 为 radioX 的 div 包含单选按钮):
// create a new radio button using the info returned from server
createNewRadioButton(
'#radioX', // Radio button div id
product.Id, // Id
product.Id, // Name
product.Name // Label Text
);
鉴于文档准备就绪,我告诉 jQuery 从#radioX 中包含的单选按钮中创建一个按钮集,如下所示:$( "#radioX" ).buttonset();,为什么函数 createNewRadioButton 中对 $("#radioX").buttonset("refresh") 的调用不刷新列表单选按钮?
调用 createNewRadioButton 后我看到的结果是添加了一个带有所需文本的新标签,但没有新的单选按钮。因此,我看到的不是一个漂亮的新 jQuery 单选按钮,而是一个新标签,其文本等同于 product.Name(在给定的示例中)。
在调用 createNewRadioButton 后,我还注意到 firebug 中的此警告输出 - 这与它有什么关系吗?
reference to undefined property $(this).button("widget")[0]
编辑
【问题讨论】:
-
refresh方法刷新按钮的状态(如果以编程方式更改了值),它不会重新创建按钮集(doc) -
啊!好的 - 所以如果我想重新创建按钮集,我需要销毁它然后重新创建它?
-
其实
refresh有效,看看我的回答
标签: javascript jquery jquery-ui refresh jquery-ui-button