【问题标题】:I have this code but i dont know why it wont work can someone tell me?我有这个代码,但我不知道为什么它不能工作有人能告诉我吗?
【发布时间】:2017-02-18 23:07:49
【问题描述】:
<script>
var a = false;
function toggleBold(){
    a = !a;
    if(a){
        document.getElementById("entertext").style.fontWeight=700;
    }
    else{
        document.getElementById("entertext").style.fontWeight=200;
    }
}

var b = false;
function toggleitalic(){
    b = !b;
    if(b){
        document.getElementById("entertext").style.fontStyle="italic";
    }
    else {
        document.getElementById("entertext").style.fontStyle="normal";
    }
}

var c = false;
function toggleline() {
    c =!c;
    if(c){             
       document.getElementById("entertext").style.textDecoration="underline";
    }
    else {
        document.getElementById("entertext").style.textDecoration="none";
    }
}


var r = false;
function togglered() {
    console.log("clicked");
    r=!r;
    if(r){
        document.getElementById("entertext").style.color="red";
    }
    else{
        document.getElementById("entertext").style.color="black";
    }
}

var b = false;
function toggleblue() {
    console.log("clicked");

    b=!b;
    if(b){
        document.getElementById("entertext").style.color="blue";
    }
    else{
        document.getElementById("entertext").style.color="black";
    }
}

var g = false;
function togglegreen() {
    g=!g;
    if(g){
        document.getElementById("entertext").style.color="green";
    }
    else{
        document.getElementById("entertext").style.color="black";
    }
}

var imp = false;
function togglefontA(){
    imp = !imp;
    if(imp){
        document.getElementById("entertext").style.fontFamily= "Impact,Charcoal,sans-serif";
    }
}


var tim = false;
function togglebfontB(){
    tim=!tim;
    if(tim){
        document.getElementById("entertext").style.fontFamily = "Times New Roman, Times, serif";
    }
}

var age = false;
function togglefontC(){
    age=!age;
    if(age){
        document.getElementById("entertext").style.fontFamily = "Agency FB, verdana, helvetica, sans-serif";
    }
}

var nor = false;
function togglefontD(){
    nor=!nor;
    if(nor){
        document.getElementById("entertext").style.fontFamily = "Arial, Helvetica, sans-serif";
    }
}


function rgb(){
    if(check()){
        document.getElementById("entertext").style.backgroundColor =
            "rgb("+document.getElementById("red").value+","
            + document.getElementById("green").value+","
            + document.getElementById("blue").value+")";
    }
    else{
        document.getElementById("entertext").style.backgroundColor = "white";
    }
}

function check(){
    var red= document.getElementById("red").value;
    var green= document.getElementById("green").value;
    var blue= document.getElementById("blue").value;
    return red <= 255 && red >= 0 && green <= 255 && green >= 0 && blue <=    255 && blue >= 0; 
}

   </script>

所以我遇到的问题是这段代码可以在我个人笔记本电脑上的 Internet Explorer 上运行,但不能在 chrome 上运行。在我的 uni 计算机上,该代码在 chrome 或 Internet Explorer 上根本不起作用。我试图通过代码寻找放错位置的括号,但未能找到问题所在。这种情况以前发生过,问题是支架放错了或丢失了。如果有人可以通过这段代码告诉我有什么问题或遗漏?

【问题讨论】:

  • 很难通过查看一段代码只是来判断它有什么问题,我建议当它不起作用时,打开浏览器的开发者控制台并在那里寻找错误;这些通常非常有用,可以帮助您自己解决问题,或者如果您无法解决问题,可以帮助其他人了解您的代码中可能存在的问题并帮助您更轻松。
  • 如果你 a) 使用文本编辑器为你突出显示右括号/括号(即 Sublime Text),并且 b) 如果你正确缩进,你会更容易找到丢失的括号。跨度>
  • 你甚至没有说问题是什么。你需要调试它。
  • 哇,这真是我很久以来见过的最“湿”的代码了。请看:en.wikipedia.org/wiki/Don't_repeat_yourself

标签: javascript html css


【解决方案1】:

这本身并不完全是一个答案,但这里有一些建议的改进,它们限制了重复代码的位数,并且没有任何全局变量。

/* This only operates on the element with id="entertext". 
 * You could easily rewrite the function to pass in an element to 
 * operate on.  If no 3rd parameter is passed, it won't do anything if the
 * style is not equal to the first.
 */
function toggleStyle(property,ifTrueValue,ifFalseValue){
    var el = document.getElementById('entertext');
    if( el.style[property] !== ifTrueValue )
        el.style[property] = ifTrueValue;
    else if (typeof ifFalseValue !== 'undefined')
        el.style[property] = ifFalseValue;
    }
}

function toggleBold(){
    toggleStyle('fontWeight',700,200);
}

function toggleitalic(){
    toggleStyle('fontStyle','italic','normal');
}

function toggleline() {
    toggleStyle('textDecoration','underline','none');
}

function togglered() {
    toggleStyle('color','red','black');
}

function toggleblue() {
    toggleStyle('color','blue','black');
}

function togglegreen() {
    toggleStyle('color','green','black');
}

function togglefontA(){
    toggleStyle('fontFamily',"Impact,Charcoal,sans-serif")
}


function togglebfontB(){
    toggleStyle('fontFamily',"Times New Roman, Times, serif");
}

function togglefontC(){
    toggleStyle('fontFamily',"Agency FB, verdana, helvetica, sans-serif";
}

function togglefontD(){
    toggleStyle('fontFamily',"Arial, Helvetica, sans-serif");
}


function rgb(){
    var rgb = getRGB()
        color;

    if( rgb == false)
        color = 'white';
    else
        color = "rgb("+rgb.red+","+rgb.green+","+rgb.blue+")";
    toggleStyle('backgroundColor', color );
}


function getRGB(){
    var red= document.getElementById("red").value;
    var green= document.getElementById("green").value;
    var blue= document.getElementById("blue").value;
    if( red <= 255 && red >= 0 && green <= 255 && green >= 0 && blue <= 255 && blue >= 0 ) {
        return {
            'red': red,
            'green': green,
            'blue': blue
        }
    } else 
        return false;
}

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 2019-02-15
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    相关资源
    最近更新 更多