この関数でトグル ボタンを作成しています: http://pastebin.com/gLkeB7pi 次に、このトグル ボタンを同様の用途で複製していますが、まったく同じではありません。そのためには、同じ「クリック」動作 (つまり、選択/選択解除 & チェックボックス) が必要ですが、新しい複製されたボタンが必要です。
だから私はこれを試しています: 最初に、私は createToggleButton を変更しました: http://pastebin.com/tFZVafwE 基本的に、event.data によってクリック ハンドラーにチェックボックス パラメーターを渡し、その結果、内部関数を変更して、新しいトグルチェックボックスがオンになっています。それから私はこれをしました:
var toggle = toggleButton.clone(true); //toggleButton is the toggle inside the div created with createToggleButton()
$(toggle).unbind('click');
$(toggle).bind('click',
{chkbx: $(toggle).find('input[type=checkbox]')},
function(evt){toggle.toggle(evt)}
);
しかし、その後、何が起こるかまったくわかりません。クリックすると、新しいトグルが上にスライドし (?!)、toggle.toggle 関数はまったく実行されません (console.log を追加しました)。そう:
1) 自分がやりたいことをするための正しい方法を考えていますか?
2) クリック時に実際に実行されるコードとその理由は?