我一直在尋找一個腳本,允許我取消選擇一個單選按鈕。我找到一個關於SO這裏實現了它......以編程方式取消選中單選按鈕的標籤
http://jsfiddle.net/sparky672/YFsVK/1/
正如你可以看到它的工作不錯,但只有當你點擊單選按鈕本身。 (您也可以通過單擊相應的<label>
文本「選擇」按鈕,這是怎麼<label>
默認運行。)
不過,我還需要通過只單擊要能「取消」單選按鈕其對應<label>
,這是我需要一些幫助。
(爲什麼?因爲我使用的是一個插件,它使用包含在<label>
中的圖像精靈來圖形化地改變單選按鈕的外觀,它覆蓋默認的單選按鈕,在我的jsFiddle中有一行可以激活看看插件的行動。)
我相信我只需要調整這個腳本有點,但我似乎無法得到它正確的。我相信我只需在操作相應的單選按鈕時「選擇」<label>
。 A <label>
通過將按鈕的id
放置在相應<label>
的for
屬性中而「附加」到按鈕上。
的JavaScript:
$(document).ready(function() {
$('input[name="amount"]').mousedown(function(e) { // allows radio button deselection
var $self = $(this);
if ($self.is(':checked')) {
var uncheck = function() {
setTimeout(function() {
$self.removeAttr('checked');
}, 0);
};
var unbind = function() {
$self.unbind('mouseup', up);
};
var up = function() {
uncheck();
unbind();
};
$self.bind('mouseup', up);
$self.one('mouseout', unbind);
}
});
});
HTML:
<fieldset id="radioset">
<input type="radio" id="radio-1" name="amount" value="Option 1" /><label for="radio-1" title="">Option 1</label><br />
<input type="radio" id="radio-2" name="amount" value="Option 2" /><label for="radio-2" title="">Option 2</label><br />
<input type="radio" id="radio-3" name="amount" value="Option 3" /><label for="radio-3" title="">Option 3</label><br />
<input type="radio" id="radio-4" name="amount" value="Option 4" /><label for="radio-4" title="">Option 4</label><br />
<input type="radio" id="radio-5" name="amount" value="Option 5" /><label for="radio-5" title="">Option 5</label>
</fieldset>
奇怪的是,[this](http://jsfiddle.net/YFsVK/2/)不起作用... – alex
@alex,但它看起來像_should_工作。 – Sparky
它調用相同的'this'引用相同的功能,所以我不知道。奇怪的。 – alex