我已经有了 onclick
事件,用于在鼠标单击时更改 div 的边框颜色。
我希望能够在 Shift + 单击时单独更改背景颜色,而不更改边框颜色。
如何实现这一目标?
编辑:
当前多次点击和shift+点击的代码:
<script>
var linkClick = 1;
function update_x(obj){
if (linkClick == 1){obj.style.border = 'solid 1px #eeeeee';};
if (linkClick == 2){obj.style.border = 'solid 1px red'};
if (linkClick == 3){obj.style.border = 'solid 1px rgba(50, 255, 50, 1)'};
if (linkClick == 4){obj.style.border = 'solid 1px rgba(70, 180, 255, 1)'};
if (linkClick == 5){obj.style.border = 'solid 1px yellow'};
if (linkClick >5 ) {obj.style.border = 'solid 1px #555555'; linkClick=0};
linkClick++;
}
</script>
<script>
function changeDivColor (event) {
event = event || window.event;
var myDiv = document.getElementById("b14")
if (event.shiftKey == true) {
myDiv.style.backgroundColor = "blue";
}
}
window.onload = function () {
document.getElementById("b14").onclick = function (event) {
changeDivColor (event);
update_x(this);
}
}
</script>
编辑2 - 由杰夫曼解决
最佳答案
最新代码。在这里查看它的工作原理:http://jsfiddle.net/jeffman/Y3QET/
var linkClick = 1;
function update_x(obj) {
if (linkClick == 1){obj.style.border = 'solid 1px #eeeeee';};
if (linkClick == 2){obj.style.border = 'solid 1px red'};
if (linkClick == 3){obj.style.border = 'solid 1px rgba(50, 255, 50, 1)'};
if (linkClick == 4){obj.style.border = 'solid 1px rgba(70, 180, 255, 1)'};
if (linkClick == 5){obj.style.border = 'solid 1px yellow'};
if (linkClick >5 ) {obj.style.border = 'solid 1px #555555'; linkClick=0};
linkClick++;
}
function changeDivColor (el, event) {
if (event.shiftKey == true) {
el.style.backgroundColor = "blue";
}
}
window.onload = function () {
var i = 1, len = 5; // len is the number of elements using the b1 id pattern
for (i; i <= len; i++) {
document.getElementById("b" + i).onclick = function (event) {
event = event || window.event;
changeDivColor (this, event);
update_x(this); // or whatever your other function is.
}
}
}
关于javascript - 更改 div 背景颜色 Shift + 单击 (javascript)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046161/