【问题标题】:replace radio button with css button and keep label in div用css按钮替换单选按钮并将标签保留在div中
【发布时间】:2013-02-27 10:16:24
【问题描述】:

创建了一个小提琴http://jsfiddle.net/4QZED/2/。 (Explosion Pills 更新版本 - http://jsfiddle.net/ExplosionPIlls/4QZED/4/ )而不是显示普通收音机,或者用图像替换收音机。我想用一个 div 替换它,我可以装扮成一个按钮,悬停类更改并单击类更改。而且点击隐藏的收音机也被选中。但还要求标签(标签参考显示的文本,例如如下所示 .co.uk .com .net 等)位于 div/按钮内。或者能够将文本添加到 div 按钮。这可能吗?

$(function() {
    $("input [name='domain_ext']").each(function() {
        if ($(this).prop('checked')) {
            $(this).hide();
            $(this).after($("<div class='radioButtonOff'> label </div>"));
        } else { 
            $(this).hide();
            $(this).after($("<div class='radioButtonOff'> label </div>"));
        }
    });

    $("input.radio").click(function() {
        if($(this).attr('src') == 'radiobuttonOn') {
            $(this).attr('src', 'radiobuttonOff');
            $(this).prev().attr('checked', 'false');
        } else { 
            $(this).attr('src', 'radioButtonOn');
            $(this).prev().attr('checked', 'true');
        }
    });
});

【问题讨论】:

  • 你的两个选择器都错了。
  • 不要在 input 和 [name=domain_ext] 之间留有空格,如果要选择无线电输入,请使用 input[type=radio]。

标签: javascript jquery css ajax


【解决方案1】:

我已尝试改进您的解决方案,使其按您想要的方式工作。你有几个错误。最重要的是,input[name=domain_ext]input [name=domain_ext] 之间有一个非常重要的区别(空格是后代选择器)。您还在选中的事件中使用$(this) 来明显更改 div,但该事件已绑定到输入。 input.radioinput[type=radio] 之间也有区别。

$("input[name='domain_ext']").each(function() {
    if ($(this).prop('checked')) {
        $(this).hide();
        $(this).after("<div class='radioButtonOff'> label </div>");
    } else { 
        $(this).hide();
        $(this).after("<div class='radioButtonOff'> label </div>");
    }
});

$("input[type=radio]").change(function() {
    $(this).siblings('.radioButtonOff').add('.radioButtonOn').toggleClass('radioButtonOff radioButtonOn');
});

http://jsfiddle.net/ExplosionPIlls/4QZED/4/

【讨论】:

  • 谢谢你,进步很大。你认为最好的方法是使用 span 和 class 将单选标签(例如 .co.uk)放入 div 按钮中吗?
  • 恐怕我没明白你的意思
  • css 按钮包含单词标签的位置。我需要单选按钮标签来替换当前位于 div/css 按钮中的文本“标签”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多