javascript - 单击切换按钮时如何更改背景颜色?

标签 javascript jquery css

我需要帮助:

我在单击任何切换按钮时遇到问题,我希望它更改背景颜色,再次单击时它必须返回到原始背景颜色。 非常感谢您的帮助。

function createButtons(tbID, tbClass, tbType, tbValue, onClick) {
    return '\n<input ' 
            + (tbID ? ' id=\'' + tbID + '\'' : '')
            + (tbClass ? ' class=\'' + tbClass + '\'' : '')
            + (tbType ? ' type=\'' + tbType + '\'' : '')
            + (tbValue ? ' value=\'' + tbValue + '\'' : '')
            + (onClick ? ' onclick=\'' + onClick + '\'' : '')
            + '>';
}
function DisplayButtons(cableData) {
    var newContent = '';
    $.each(cableData,

    function (i, item) {
        function toggle() {
            $(this).clicked ? $("#tb").addClass("btnColor") : $(this).removeClass("btnColor");
            $("#tb").toggleClass("btnColorR");
        }
        newContent += createButtons("tb" + item.CommonCable, null, "submit", item.CommonCable,
            ' alert("clicked")');
    });
    $("#Categories").html(newContent);
}

最佳答案

您的按钮需要一个点击事件监听器。每当单击按钮时,toggleClass() 将在 normalactive 类之间切换,每个包含不同的背景颜色。

根据您的评论,您似乎是根据数据库中的值动态创建这些按钮,因此您事先不知道按钮的 ID。对于这种情况,不是为特定按钮(引用 id)创建点击事件监听器,而是为页面上的所有按钮创建事件 $('input[type=button]').click(function () {...

HTML:

<!-- 
    These buttons were generated dynamically from values stored in a database 
    I won't know their ids
-->
<input type="button" name="btn_1_from_db" value="Toggle Color1" />    
<input type="button" name="btn_2_from_db" value="Toggle Color2" /> 
<input type="button" name="btn_3_from_db" value="Toggle Color3" /> 
<input type="button" name="btn_4_from_db" value="Toggle Color4" /> 

<div id="target" class="normal">
   My color will change
</div>

CSS

.normal {
    background-color: green;
}

.active {
   background-color: red;
}

Javascript:

$(document).ready(function () {

    // If any button is clicked, toggle its assigned class (changes the color)
    $('input[type=button]').click(function () {
        $('#target').toggleClass('active');
    });
});

示例:http://jsfiddle.net/EkAAh/

关于javascript - 单击切换按钮时如何更改背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14767835/

相关文章:

javascript - Vue 在开发模式下编译这个 HTML 模板非常慢

html - 一些 Bootstrap div 与其他 Bootstrap div 重叠

css - 子 div 高度与兄弟 div Bootstrap 3 相同?

javascript - 如何设置Rollover的超时功能

javascript - 让 Javascript 执行 Python 脚本

javascript - 在javascript中将字符串转换为日期时间并与当前时间进行比较

javascript - 制作 :before not clickable in Firefox

javascript - 重新排序元素的逻辑

javascript - 水平自动收报机被过早切断?

javascript对象文字模式构造函数错误