これは、編集フィールドの境界線を変更するよりも少し高度な作業です。最も良い方法は、チェックボックス/ラジオボタンを隠し、それをダミー要素で置き換えることです。この方法の問題は、両方の要素を同期させておくことです。ラジオボタン画像は、いつ別のラジオボタンがチェックされたかなどを知る必要があります。これには、高度なイベントピンポンが必要です。チェックボックス(テストされていない)でこれを行うことができます:
$(':checkbox').each(function() {
var checkbox = $(this),
fakebox = $(document.createElement('span')).addClass('custom-checkbox');
// toggle and trigger update of the real checkbox
fakebox.click(function() {
checkbox.attr('checked', !checkbox.attr('checked')).change();
});
// changes to the real checkbox causes the fake checkbox to update its status
checkbox.change(function() {
if (checkbox.attr('checked')) {
fakebox.addClass('custom-checkbox-checked');
} else {
fakebox.removeClass('custom-checkbox-checked');
}
});
// initialize
checkbox.change().hide();
fakebox.insertAfter(checkbox);
});
あなたは投稿jQuery UIにタグを付けました。 jQuery UIのラジオとチェックボックスを使用していませんか?彼らは素晴らしく見えます...もしあなたがこの質問に誤ってタグを付けたのでなければ? – Stephen
必ずしも「同じ仕事」ではない。より具体的にする必要があります。 –
チェックボックスとラジオボタンの機能と同じタスクです。機能の変更はありません。私はそれらを提示するより良い方法に興味を持っています...意味UI –