OK -この質問に従ってラジオボタンを動的に追加するために呼び出す関数があります。これは完全な機能です:
// 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
);
$( "#radioX" ).buttonset();
ドキュメントの準備が整ったら、次のように#radioX に含まれるラジオ ボタンからボタンセットを作成するよう jQuery に指示し$("#radioX").buttonset("refresh")
ます。
createNewRadioButton への呼び出しが行われた後に表示される結果は、目的のテキストが追加された新しいラベルが追加されていますが、新しいラジオ ボタンはありません。そのため、既にあるものの下に素敵な新しい jQuery ラジオ ボタンが表示される代わりに、product.Name と同等のテキストを含む新しいラベルが表示されます (この例では)。
createNewRadioButton への呼び出しが行われた後、firebug にこの警告出力が表示されることにも気付きました。
reference to undefined property $(this).button("widget")[0]
編集