javascript样式的背景颜色在设置时闪烁.ASP.NET

javascript style background color flashes when set. ASP.NET

本文关键字:闪烁 ASP NET 设置 样式 背景 颜色 javascript      更新时间:2023-09-26

单击链接按钮时,我正尝试使用javascript设置标签的背景色
然而,背景将闪烁所需的颜色,然后回落到没有背景。下面我有javascript函数以及有问题的控件
我试过用display='none',display=''强制重画,但没有用
此外,我还尝试将标签作为一个标准控件,使其不在服务器上运行
我还在设置样式的两个区域都设置了中断,并调用了LightGreen,但空白区域没有,所以不确定背景在哪里被覆盖,因为这在其他地方没有指定
谢谢,James

标签

<asp:Label runat="server" Font-Bold="true" id="lblCustomer">Customer:</asp:Label>

Javascript

function CheckUncheckAll(clientID, listID, check) {
        var chk = clientID.getElementsByTagName("input");
        for (var i = 0; i < chk.length; i++) {
            chk[i].checked = check;
        }
        if (check) {
            document.getElementById(listID.id).style.backgroundColor = "LightGreen";
        }
        else {
            document.getElementById(listID.id).style.backgroundColor = "";
        }
    }

背后的代码

lbCustomerAll.Attributes.Add("onclick", "CheckUncheckAll(" + ckbxlstCustomer.ClientID + ", " + lblCustomer.ClientID + ", true)");

如果你做了这样的事情怎么办:

function CheckUncheckAll(clientID, listID, check) {
        var evt = document.getElementById(clientID);
        evt.preventDefault();
        var chk = clientID.getElementsByTagName("input");
        for (var i = 0; i < chk.length; i++) {
            chk[i].checked = check;
        }
        if (check) {
            document.getElementById(listID.id).style.backgroundColor = "LightGreen";
        }
        else {
            document.getElementById(listID.id).style.backgroundColor = "";
        }
    }

这将防止触发链接按钮的默认行为。

checked不是真/假值,它是一个二进制属性。

element.checked = true; //will fail
element.checked ='checked'; //will work

如果传递的"check"值为true/false,则代码将无法工作。

附言:jQuery值得学习。您可以在一行代码中完成所有这些操作。

遇到了同样的问题。偶然间,我意识到问题出在Button标记和onclick函数的关联上。

如果我将按钮更改为其他任何东西,比如h1,或者如果我将功能更改为onmouseover,它就会工作。但我不明白为什么。