设置时,javascript样式背景颜色闪烁。 ASP.NET

时间:2012-08-27 21:03:10

标签: javascript asp.net styles background-color

我试图在点击链接按钮时使用javascript设置标签的背景颜色 但是,背景将闪烁所需的颜色,然后回落到无背景。下面我有javascript函数以及有问题的控件 我试图用display ='none'强制重绘,显示=''但没有用 此外,我已经尝试通过使标签成为标准控件来使标签不在服务器上运行 我也在设置样式的两个区域都设置了中断,并且调用了LightGreen,但是空白不是,因此不确定背景被消隐的位置,因为这在其他任何地方都没有指定。
谢谢,詹姆斯

标签

<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)");

3 个答案:

答案 0 :(得分:0)

如果您执行以下操作会怎么样?

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 = "";
        }
    }

这样可以防止链接按钮的默认行为被触发。

答案 1 :(得分:0)

checked不是true / false值,它是二进制属性。

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

如果传递的“check”值为true / false,则代码将无效。

P.S。值得学习jQuery。您可以在一行代码中完成所有这些操作。

答案 2 :(得分:0)

遇到同样的问题。不小心,我意识到问题在于Button标签和onclick功能的关联。

如果我将按钮更改为其他任何内容,例如h1,或者如果我将功能更改为onmouseover,则可以正常工作。但是,不知道为什么会这样做。