jquery を使用して次のことを試みています。
1- チェックボックスを動的に追加します 2- 正しく配置します。
これまでのところ、1 または 2 は実行できますが、1 および 2 は実行できません。
ここに私のHTMLコードがあります:
<!-- language: lang-html -->
<body>
<div id='myDiv'></div>
<div id='myOtherDiv'>
<button id='myButton'>my button</button>
</div>
</body>
ここに私のjsコードがあります:
<!-- language: lang-js -->
jQuery(document).ready(
function ($)
{
jQuery.noConflict();
function createCheckbox()
{
var $myCheckbox = $('<input id="myCheckbox" type="checkbox"></input><label for="myCheckbox">my checkbox</label>');
$('#myDiv').append($myCheckbox);
/*
The following line fixes the "button displayed as unpressed" problem
but it breaks the .position call
*/
// $myCheckbox = $('#myDiv > input');
/* myCheckbox */
$myCheckbox.button({
text: false,
icons: { primary: "ui-icon-refresh"}
});
$myCheckbox.change(
function()
{
if($myCheckbox.is(":checked"))
{ alert('checked'); }
else
{ alert('unchecked');}
}
);
var $myButton = $('#myButton');
$myCheckbox.position({my:"left", at:"right", of:$myButton });
}
createCheckbox();
});
上記のコードは機能しますが、チェックボックスをクリックして「チェック済み」アラートで「OK」をクリックすると、実際のチェックボックスがオンになっているにもかかわらず、jquery チェックボックスボタンがオフとして表示されます。
試行錯誤により、追加後にチェックボックスを再選択することでその問題を修正しました。なぜそれが機能するのかはわかりません。
$myCheckbox = $('#myDiv > input');
上記の行のコメントを外すと、チェックボックスが適切に動作し、チェックされているときにチェック済みとして表示されます。しかし、.position の呼び出しでは、チェックボックス ボタンが適切に配置されません。
参照: http://jsfiddle.net/roumbaba/uM3sS/1/
注: この問題は、入力/チェックボックスを動的に追加した場合にのみ発生します。シンプルなボタンのみを追加すると(代わりにプレーンを使用すると、位置とチェック済みの表示ステータスの両方が正常に機能します。
ここでは、プロセス全体がどのように機能するかについて、明らかに重要な何かが欠けています。特に、行でチェックボックスを再選択する理由がわかりません
$myCheckbox = $('#myDiv > input');
ステータスの確認ボタンの動作を変更します。そして、私がそれをした後に位置が機能しないのはなぜですか。