2014-09-21 23 views
-2

我正在做一个Greasemonkey的用户脚本,我想要设置一个按键来将的样式display:""更改为block,反之亦然按一个键(本例中为“Home”)。 如何设置一个键来改变节点的风格?

var bluebar = document.getElementById('pagelet_bluebar'); 
bluebar.style.display = "none"; 
document.addEventListener("keydown", function (e) { 
    if (e.keyCode == 36) { 
     showhideui(); 
    } 
}, false); 
function showhideui() { 
    if (bluebar.style.display = "none") { 
     bluebar.style.display = "block"; 
    } else if (bluebar.style.display = "block") { 
     bluebar.style.display = "none"; 
    } 
} 

的解决方案是增加而不是===的条件:

if (bluebar.style.display == "none") 
else if (bluebar.style.display == "block") 

回答

1

使用=====,而不是在您的比较单一=迹象。
检查此链接了解comparison operators

var bluebar = document.getElementById('pagelet_bluebar'); 
    document.addEventListener("keydown", function (e) { 
     if (e.keyCode === 36) { //press "Home" key change to block/none 
      showhideui(); 
     } 
    }, false); 
    function showhideui() { 
     if (bluebar.style.display == "none") { //if is none 
      bluebar.style.display = "block" ; //change to block 
     } else if (bluebar.style.display == "block" || bluebar.style.display == "") { //if is block 
      bluebar.style.display = "none"; //change to none 
     } 
    } 

PS:如果只有这两个可能性,你甚至可以用更综合的方式:

(bluebar.style.display == "block" || bluebar.style.display == "") ? bluebar.style.display = "none" : bluebar.style.display = "block"; 
+0

我得不到控制台错误,我用Firefox的默认控制台...更好的扩展Firebug的控制台? – 2014-09-21 15:32:49

+1

我更喜欢萤火虫,但它都是个人的。 – Kaiido 2014-09-21 15:36:45

+1

嗡嗡声对我有用 – Kaiido 2014-09-21 17:36:56