单击链接按钮时,我正尝试使用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
,它就会工作。但我不明白为什么。